【发布时间】:2015-12-26 06:07:56
【问题描述】:
我是 DTD 新手,我不确定我是否正确理解了这段代码。
<!ELEMENT P - - (#PCDATA) +(tag1 | tag2 | tag3) >
这段代码是否允许P标签包含tag1、tag2和tag3?
【问题讨论】:
我是 DTD 新手,我不确定我是否正确理解了这段代码。
<!ELEMENT P - - (#PCDATA) +(tag1 | tag2 | tag3) >
这段代码是否允许P标签包含tag1、tag2和tag3?
【问题讨论】:
这是一种 SGML 语法,而不是 XML。可以看到是因为在声明元素的名称(P)和内容声明(#PCDATA)之间,遇到了“- -”,表示起始标签和结束标签都不能省略(否则你可能会有类似“- O”的东西,这意味着可以省略结束标签)。
+(tag1 | tag2 | tag3) 表示您可以在任何需要的地方使用tag1、tag2、tag3,嵌套在P 元素中。它是递归的,这意味着,假设在 P 中允许其他元素,您也可以允许此标签出现,即使它们没有在元素的同一级别声明。
相反,为了防止这些元素在您的元素及其子元素中进一步出现,您将使用-(tag1 | tag2 | tag3)。
【讨论】: