XML中的元素DTD
我在创建元素DTD时遇到了困难 下面是我的元素的外观XML中的元素DTD,xml,dtd,Xml,Dtd,我在创建元素DTD时遇到了困难 下面是我的元素的外观元素I(p*,L?,但在验证DTD后返回 Element I: validity error : Element I content does not follow the DTD, expecting (P*, L?), got (L P P) 以下是xml: <I> <P></P> <I> <I> <P></P> <P>
元素I(p*,L?
,但在验证DTD后返回
Element I: validity error : Element I content does not follow the DTD,
expecting (P*, L?), got (L P P)
以下是xml:
<I>
<P></P>
<I>
<I>
<P></P>
<P></P>
<I>
<I>
<P></P>
<L></L>
<I>
<I>
<L></L>
</I>
<I>
<L></L>
<P></P>
<P></P>
</I>
这是因为您对I
的声明表示零个或多个p
,后跟零个或一个L
。最后一个I
元素在P
前面有L
如果XML是正确的,则需要更改DTD。如果DTD正确,则必须更改XML
DTD的一个可能变化是:
<!ELEMENT I ((P*,L?)|(L?,P*))>
以下两项都允许:
<!ELEMENT I ((P|L)*)>
我也试过了。给出>>有效性错误:I的内容模型不是确定性的:((P*,L?)|(L?,P*)我知道模型是非确定性的,但希望这不会成为您的验证器的问题。您使用什么来验证您的xml?与Daniel Haley的建议相当的确定性:
<!ELEMENT I ((P|L)+)>