我正在使用http://www.xmlvalidation.com/index.php
验证我的DTD,但它在XML结束标记上产生错误。
XML:
1 <?xml version="1.0" encoding="utf-8" ?>
2 <!DOCTYPE books SYSTEM "books.dtd">
3 <books>
4 <book title="Le Mans 24 Hours: The Official History of the World's Greatest Motor Race 1960-69" imageurl="images/1960-89.jpg">
5 <description>
6 <author>Quentin Spurring.</author>
7 <publisher>J H Haynes and Co Ltd.</publisher>
8 <publishDate>15 August 2010</publishDate>
9 <ISBN10>1844255840</ISBN10>
10 <ISBN13>9781844255849</ISBN13>
11 <blurb>Covers different races since 1923. This title also includes photographs, a race account, results data and a glorious rendering of the official race poster.</blurb>
12 </description>
13 </book>
14 <book title="Le Mans 24 Hours: The Official History of the World's Greatest Motor Race 1970-79" imageurl="images/1970-79.jpg">
15 <description>
16 <author>Quentin Spurring.</author>
17 <publisher>J H Haynes and Co Ltd.</publisher>
18 <publishDate>15 March 2011</publishDate>
19 <ISBN10>1844255395</ISBN10>
20 <ISBN13>9781844255399</ISBN13>
21 <blurb>Officially licensed with the ACO, the organisers of the annual Le Mans 24 Hours sports car race, this book covers various races since 1923.</blurb>
22 </description>
23 </book>
24 </books>
DTD:
<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT books (book+)>
<!ELEMENT book (title, imageurl, description, author, publisher, publishDate, ISBN10, ISBN13, blurb)>
<!ELEMENT description (#PCDATA)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT publisher (#PCDATA)>
<!ELEMENT publishDate (#PCDATA)>
<!ELEMENT ISBN10 (#PCDATA)>
<!ELEMENT ISBN13 (#PCDATA)>
<!ELEMENT blurb (#PCDATA)>
错误列表:
4: 129 Attribute "imageurl" must be declared for element type "book".
4: 129 Attribute "title" must be declared for element type "book".
12: 19 The content of element type "description" must match "null".
13: 10 The content of element type "book" must match "(title,imageurl,description,author,publisher,publishDate,ISBN10,ISBN13,blurb)".
14: 129 Attribute "imageurl" must be declared for element type "book".
14: 129 Attribute "title" must be declared for element type "book".
22: 19 The content of element type "description" must match "null".
23: 10 The content of element type "book" must match "(title,imageurl,description,author,publisher,publishDate,ISBN10,ISBN13,blurb)".
你如何处理DTD中的结束标签?
答案 0 :(得分:2)
这与关闭标签无关。您需要声明book
的属性,并且需要修复book
和description
元素的模型。
新DTD
<!ELEMENT books (book+)>
<!ELEMENT book (description)>
<!ATTLIST book
title CDATA #REQUIRED
imageurl CDATA #REQUIRED>
<!ELEMENT description (author, publisher, publishDate, ISBN10, ISBN13, blurb)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT publisher (#PCDATA)>
<!ELEMENT publishDate (#PCDATA)>
<!ELEMENT ISBN10 (#PCDATA)>
<!ELEMENT ISBN13 (#PCDATA)>
<!ELEMENT blurb (#PCDATA)>
注意:我提供了所需的title
和imageurl
属性。根据您的数据,您可能希望隐含它们。