我是DTD的新手,我不确定我是否正确理解此代码。
<!ELEMENT P - - (#PCDATA) +(tag1 | tag2 | tag3) >
此代码是否允许P标记包含tag1,tag2和tag3?
答案 0 :(得分:1)
这是 SGML 语法,而不是XML。您可以看到它,因为在声明的元素(P
)的名称和内容声明(#PCDATA
)之间,您会遇到&#34; - -
&#34;,这意味着开头标签和结束标签都不能省略(否则你可能会有&#34; - O
&#34;这意味着可以省略结束标签。)
+(tag1 | tag2 | tag3)
表示您可以在tag1
元素中嵌套tag2
,tag3
,P
。它是递归的,这意味着,假设P
中允许使用其他元素,您也可以允许此标记出现,即使它们未在元素的同一级别声明也是如此。
相反,为了防止在元素及其子元素中进一步使用这些元素,您将使用-(tag1 | tag2 | tag3)
。