DTD +(tag1,tag2)

时间:2015-09-28 21:59:06

标签: xslt dtd sgml

我是DTD的新手,我不确定我是否正确理解此代码。

<!ELEMENT P         - - (#PCDATA) +(tag1 | tag2 | tag3) >

此代码是否允许P标记包含tag1,tag2和tag3?

1 个答案:

答案 0 :(得分:1)

这是 SGML 语法,而不是XML。您可以看到它,因为在声明的元素(P)的名称和内容声明(#PCDATA)之间,您会遇到&#34; - -&#34;,这意味着开头标签和结束标签都不能省略(否则你可能会有&#34; - O&#34;这意味着可以省略结束标签。)

+(tag1 | tag2 | tag3)表示您可以在tag1元素中嵌套tag2tag3P。它是递归的,这意味着,假设P中允许使用其他元素,您也可以允许此标记出现,即使它们未在元素的同一级别声明也是如此。

相反,为了防止在元素及其子元素中进一步使用这些元素,您将使用-(tag1 | tag2 | tag3)