DTD错误验证

时间:2015-12-12 17:31:41

标签: dtd

我有像这样的XML

 <catalogue>
    <book year="1992">
        <title>Advanced Programming in the Unix environment</title>
        <publisher>AW</publisher>
        <price kind="retail">65.95</price>
        <price kind="wholesale">50.00</price>
    <ISBN>ISBN-020163346X</ISBN>
    </book>
    <publisher>
        <abbreviation>AW</abbreviation>
        <name>Morgan Kaufmann Publishers</name>
        <country>USA</country>
    </publisher>
</catalogue>
如果我有2次这个标签,我是否无法创建和添加发布者?我试试这个

<!ELEMENT catalogue (book+,publisher+)>
<!ELEMENT book (title,publisher,price+,ISBN)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT price (#PCDATA)>
<!ELEMENT ISBN (#PCDATA)>
<!ATTLIST book year CDATA #REQUIRED>
<!ATTLIST price kind CDATA #IMPLIED>

<!ELEMENT publisher (abbreviation,name,country)>

<!ELEMENT abbreviation (#PCDATA)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT country (#PCDATA)>

但在Netbians中有错误 元素类型的内容&#34;出版商&#34;必须匹配&#34;(缩写,名称,国家/地区)&#34;。 [6] 元素类型的内容&#34;出版商&#34;必须匹配&#34;(缩写,名称,国家/地区)&#34;。 [13] 元素类型的内容&#34;出版商&#34;必须匹配&#34;(缩写,名称,国家/地区)&#34;。 [21] 元素类型的内容&#34;出版商&#34;必须匹配&#34;(缩写,名称,国家/地区)&#34;。 [28]

1 个答案:

答案 0 :(得分:0)

我找到了解决方案

<!ELEMENT publisher (#PCDATA | abbreviation |name | country )*>