2013-02-12 49 views
0

我正在使用http://www.xmlvalidation.com/index.php來驗證我的DTD,但它在XML結束標記上產生錯誤。關閉標記上的XML DTD錯誤 - 驗證錯誤

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的結束標記?

回答

2

這與閉合標籤無關。您需要聲明book的屬性,並且需要修復bookdescription元素的模型。

新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)> 

注:我需要做的titleimageurl屬性。您可能希望它們隱含取決於您的數據。