0

DTDの検証に使用http://www.xmlvalidation.com/index.phpしていますが、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の終了タグをどのように処理しますか?

4

1 に答える 1

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属性を必須にしました。データによっては、それらを暗示する必要がある場合があります。

于 2013-02-12T23:58:09.507 に答える