1

在 xml 规范中,它说:

[定义:当该类型的元素可能包含字符数据时,该元素类型具有混合内容,可选地穿插有子元素。] 在这种情况下,子元素的类型可能受到限制,但它们的顺序或出现次数不受限制

有没有办法解决这个问题,使这个 xml 有效:

<parent>
   A text node
   <child/>
</parent>

但是这个 xml 无效:

<parent>
   A text node
   <child/>
   <child/>
</parent>

另外,您知道为什么不允许这样做吗?

<!ELEMENT parent (#PCDATA,child)>
4

2 回答 2

0

奥德拉斯,

在前面,我不知道,但我不这么认为,不是在 DTD 中......而且,如果我可以这样说,你真的应该使用 XML Schema(即 XSD)而不是 DTD(它们是就这样 90 年代;-)。

XSD 允许您更严格地控​​制文档内容,而且我很确定使用 XSD 可以(甚至很容易)限制“混合类型”复杂元素中特定子元素的出现次数;虽然我自己从来没有需要(触摸木头)这样做......所以把它当作异端。

祝你好运。

干杯。基思。

于 2009-08-07T12:01:10.050 回答
0

DEFINE:(a,b,c) 是表示ALLOWED CHILD ELEMENTS序列表的方式。您不应该对文本内容和某些元素进行排序。

解决:如果您希望该文本位于某些子元素中的任何确切位置,请将其包装在一个新的特定子元素中,并在其他子元素中对该特定元素进行排序。

记住:A = 任何;允许文本内容(= PCDATA = 从 DTD 的角度来看的非标记字符串)必然允许任何文本内容。

我相信我是对的。. 干杯

于 2009-10-30T15:28:43.870 回答