XML and DTD: 元素类型的内容必须匹配
XML and DTD: The content of element type must match
我目前正在学习 XML,并且正在努力学习第一个 DTD 扩展。
我的 DTD:
<!ELEMENT biblio (livre*) >
<!ELEMENT livre (achat , auteurs, titre ) >
<!ATTLIST livre langue CDATA #IMPLIED
ref CDATA #IMPLIED>
<!ELEMENT achat EMPTY >
<!ATTLIST achat date CDATA #IMPLIED
lieu CDATA #IMPLIED>
<!ELEMENT titre (#PCDATA)>
<!ATTLIST titre genre CDATA #IMPLIED
type NMTOKEN #IMPLIED>
<!ELEMENT auteurs (auteur+) >
<!ELEMENT auteur ( nom?, prenom? ,sexe?) >
<!ELEMENT nom (#PCDATA)>
<!ELEMENT prenom (#PCDATA)>
<!ELEMENT sexe (#PCDATA)>
如果我启动解析器,似乎:
The content of element type "livre" must match (achat , auteus ,titre )
我的XML:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE biblio SYSTEM "Dtdbiblio.dtd">
<biblio>
<livre langue="francais" ref="1684561564">
<achat date="11/11/1993" lieu="london"/>
<titre genre="G" type="politique"> Tiiiiiiiiiiiiiiiiiiiiiiiiitre </titre>
<auteurs>
<auteur>
<nom>x</nom>
<prenom>x</prenom>
<sexe>H</sexe>
</auteur>
</auteurs>
</livre>
</biblio>
如何解决这个问题?
(achat , auteurs, titre )
中的逗号 (,
) 指定元素必须出现的顺序。 (See here for more detail.)
所以 (achat , auteurs, titre )
表示恰好一个 achat
紧接着恰好一个 auteurs
紧接着恰好一个 titre
.
您只需要在 XML 实例中更改 titre
和 auteurs
的顺序...:
<biblio>
<livre langue="francais" ref="1684561564">
<achat date="11/11/1993" lieu="london"/>
<auteurs>
<auteur>
<nom>x</nom>
<prenom>x</prenom>
<sexe>H</sexe>
</auteur>
</auteurs>
<titre genre="G" type="politique"> Tiiiiiiiiiiiiiiiiiiiiiiiiitre </titre>
</livre>
</biblio>
或在 DTD 中:
<!ELEMENT livre (achat, titre, auteurs) >
我目前正在学习 XML,并且正在努力学习第一个 DTD 扩展。
我的 DTD:
<!ELEMENT biblio (livre*) >
<!ELEMENT livre (achat , auteurs, titre ) >
<!ATTLIST livre langue CDATA #IMPLIED
ref CDATA #IMPLIED>
<!ELEMENT achat EMPTY >
<!ATTLIST achat date CDATA #IMPLIED
lieu CDATA #IMPLIED>
<!ELEMENT titre (#PCDATA)>
<!ATTLIST titre genre CDATA #IMPLIED
type NMTOKEN #IMPLIED>
<!ELEMENT auteurs (auteur+) >
<!ELEMENT auteur ( nom?, prenom? ,sexe?) >
<!ELEMENT nom (#PCDATA)>
<!ELEMENT prenom (#PCDATA)>
<!ELEMENT sexe (#PCDATA)>
如果我启动解析器,似乎:
The content of element type "livre" must match (achat , auteus ,titre )
我的XML:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE biblio SYSTEM "Dtdbiblio.dtd">
<biblio>
<livre langue="francais" ref="1684561564">
<achat date="11/11/1993" lieu="london"/>
<titre genre="G" type="politique"> Tiiiiiiiiiiiiiiiiiiiiiiiiitre </titre>
<auteurs>
<auteur>
<nom>x</nom>
<prenom>x</prenom>
<sexe>H</sexe>
</auteur>
</auteurs>
</livre>
</biblio>
如何解决这个问题?
(achat , auteurs, titre )
中的逗号 (,
) 指定元素必须出现的顺序。 (See here for more detail.)
所以 (achat , auteurs, titre )
表示恰好一个 achat
紧接着恰好一个 auteurs
紧接着恰好一个 titre
.
您只需要在 XML 实例中更改 titre
和 auteurs
的顺序...:
<biblio>
<livre langue="francais" ref="1684561564">
<achat date="11/11/1993" lieu="london"/>
<auteurs>
<auteur>
<nom>x</nom>
<prenom>x</prenom>
<sexe>H</sexe>
</auteur>
</auteurs>
<titre genre="G" type="politique"> Tiiiiiiiiiiiiiiiiiiiiiiiiitre </titre>
</livre>
</biblio>
或在 DTD 中:
<!ELEMENT livre (achat, titre, auteurs) >