XML中的元素DTD

  • 本文关键字:DTD 元素 XML xml dtd
  • 更新时间 :
  • 英文 :


我在创建ELEMENT DTD时遇到了困难。

以下是我的ELEMENT看起来像ELEMENT 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元素的L位于P之前。

如果XML是正确的,则需要更改DTD。如果DTD是正确的,您将不得不更改您的XML。

一个可能的DTD变化是:

<!ELEMENT I ((P*,L?)|(L?,P*))>

以下两者都允许:

<!ELEMENT I ((P|L)*)>

或者,如果您希望发生PL中的一个,这应该会有所帮助:

<!ELEMENT I ((P|L)+)>

最新更新