0

我在创建 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>
4

2 回答 2

0

那是因为您的声明I说 zero 或 moreP 后跟zero 或 one L。您的最后一个I元素具有L前面的P.

如果 XML 正确,则需要更改 DTD。如果 DTD 正确,则必须更改 XML。

一种可能的 DTD 更改是:

<!ELEMENT I ((P*,L?)|(L?,P*))>
于 2013-07-21T00:39:37.203 回答
0

以下允许两者:

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

或者,如果您更喜欢要求其中一个PL发生,这应该会有所帮助:

<!ELEMENT I ((P|L)+)>
于 2018-09-25T23:12:45.613 回答