元素声明:将内容定义为#PCDATA,并将一个子元素出现

在xml规范中,它说: [定义:当该类型的元素可能包含字符数据时,元素类型具有混合内容,可选地散布有子元素。]在这种情况下,子元素的类型可能受到约束,但不是它们的顺序或它们的出现次数 有没有办法解决这个问题,使这个xml有效:
<parent>
   A text node
   <child/>
</parent>
但是这个xml无效:
<parent>
   A text node
   <child/>
   <child/>
</parent>
另外,你知道为什么不允许这样做的原因吗?
<!ELEMENT parent (#PCDATA,child)>
    
已邀请:
Alderath, 在前面,我不知道,但我不这么认为,不是在DTD ......而且,如果我可以这样说,你真的应该使用XML Schema(即XSD)而不是DTD(他们是就这么90年代;-)。 XSD允许你更严格地控​​制文档内容,我很确定使用XSD可以限制“混合类型”复杂元素中特定子元素的出现次数(甚至很容易);虽然我自己从来没有需要(触摸木头)这样做...所以把它视为异端邪说。 祝你好运。 干杯。基思。     
DEFINE:(a,b,c)是表达允许的儿童元素排序列表的方式。您不应该对文本内容和某些元素进行排序。 解决方法:如果您希望该文本位于某些子元素中的任何确切位置,请将其包装在新的特定子元素中,并将该特定元素排序到其他子元素中。 记住:A =任何;从DTD的角度来看,允许文本内容(= PCDATA =非标记字符串)必然允许任何文本内容。 我相信我是对的。 。干杯     

要回复问题请先登录注册