DTD +(标签 1,标签 2)
DTD +(tag1,tag2)
我是 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)
.
我是 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)
.