所以 - 我的.dtd文件中有这个声明:
<!ELEMENT some_node1 (some_node2?,
some_node3,
(some_node4 | some_node5)*)+>
+
在这里意味着什么?
a)some_node2?, some_node3, (some_node4 | some_node5)*
序列可以重复1次或更多次?
b)括号中的单个元素可以重复1次或更多次?,即some_node3,some_node3,some_node3,some_node3,some_node5,some_node5?
答案 0 :(得分:2)
标注'a'的解释是正确的:序列可以出现一次或多次。
然而,您在“b”下给出的示例仍然是合法的:序列&lt; some_node3,some_node3,some_node3,some_node3,some_node5,some_node5&gt;可以通过连接内容模型中给出的序列的四次出现来构造:
some_node3
(some_node2出现次数为零,然后出现some_node3,然后在some_node4和some_node5之间出现零次出现。)some_node3
(见上文)some_node3, some_node5, some_node5
(some_node2出现零次,后面恰好出现some_node3,然后在some_node4和some_node5之间出现两次选择)。 在您的解释'b'(如果我已正确理解)但不在'a'(而不是XML规范)下允许的序列的示例是some_node2,some_node2,some_node3。