如何验证DTD文件?

时间:2015-12-01 08:53:17

标签: dtd xml-dtd

这两个DTD文件的问题在哪里。我不明白以下错误:

:Character ',' is grammatically unexpected.(line on **,**)

这两个DTD中是否有一个有效的XML实例文档?

第一次DTD

<!ELEMENT nom (#PCDATA , (nomp | prenom)*)>
<!ELEMENT nomp (#PCDATA)>
<!ELEMENT prenom (#PCDATA)

第二次DTD

<!ELEMENT nom ((#PCDATA | nomp) , prenom)*>
<!ELEMENT nomp (#PCDATA)>
<!ELEMENT prenom (#PCDATA)>

错误 :Character '(' is grammatically unexpected. (line 1 second "**(**")

1 个答案:

答案 0 :(得分:0)

如果您有混合内容(即元素可能包含字符数据和可选的散布子元素),则必须以特定方式声明元素。订单和发生次数不能受到限制。

有关详细信息,请参阅规范:http://www.w3.org/TR/xml/#sec-mixed-content

所以你的元素声明需要是:

<!ELEMENT nom (#PCDATA|nomp|prenom)*>