0

こんにちは、外部の XML DTD コードがありますが、検証しようとするとエラーが発生するようです。私が持っているコードは以下の通りです:

<!DOCTYPE catalog [ 
    <!ELEMENT catalog (book)+>
    <!ELEMENT book (title, authors, year_published, ISBN, number_of_pages, price) >
    <!ELEMENT title (#PCDATA)>
    <!ELEMENT authors (author)>
    <!ELEMENT author (first_name, last_name, gender)>
        <!ELEMENT first_name (#PCDATA)>
        <!ELEMENT last_name (#PCDATA)>
        <!ELEMENT gender (#PCDATA)>
    <!ELEMENT year_pusblished (#PCDATA)>
    <!ELEMENT ISBN (#PCDATA)>
    <!ELEMENT number_of_pages (#PCDATA)>
    <!ELEMENT price (discount)>
        <!ATTLIST price discount (yes|no) "no">]>

すべてが正しいことはわかっていますが、検証するとエラーメッセージが表示されます。

「文書型宣言に含まれる、または文書型宣言によって指されるマークアップ宣言は、整形式でなければなりません。行 3 列 4」

私はすべてをチェックしましたが、うまくいかないようです。あなたたちは助けることができますか?

4

1 に答える 1

0

ファイル .xml に書き込む場合、エラーは生成されませんが、.dtd ファイルがある場合は、要素をクリアする必要があります! ファイル test.xml を修正します。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE catalog [ 
<!ELEMENT catalog (book)+>
<!ELEMENT book (title, authors, year_published, ISBN, number_of_pages, price) >
<!ELEMENT title (#PCDATA)>
<!ELEMENT authors (author)>
<!ELEMENT author (first_name, last_name, gender)>
<!ELEMENT first_name (#PCDATA)>
<!ELEMENT last_name (#PCDATA)>
<!ELEMENT gender (#PCDATA)>
<!ELEMENT year_pusblished (#PCDATA)>
<!ELEMENT ISBN (#PCDATA)>
<!ELEMENT number_of_pages (#PCDATA)>
<!ELEMENT price (discount)>
<!ATTLIST price discount (yes|no) "no">]>
<catalog>
    <book>
        <title></title>
        <authors>
            <author>
                <first_name></first_name>
                <last_name></last_name>
                <gender></gender>
            </author>
        </authors>
        <year_published></year_published>
        <ISBN></ISBN>
        <number_of_pages></number_of_pages>
        <price>
            <discount></discount>
        </price>
    </book>
</catalog>

ファイル test.dtd を修正します (同じ test.xml に宣言された xml ファイルにリンクされています):

<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT catalog (book)+>
<!ELEMENT book (title, authors, year_published, ISBN, number_of_pages, price) >
<!ELEMENT title (#PCDATA)>
<!ELEMENT authors (author)>
<!ELEMENT author (first_name, last_name, gender)>
<!ELEMENT first_name (#PCDATA)>
<!ELEMENT last_name (#PCDATA)>
<!ELEMENT gender (#PCDATA)>
<!ELEMENT year_pusblished (#PCDATA)>
<!ELEMENT ISBN (#PCDATA)>
<!ELEMENT number_of_pages (#PCDATA)>
<!ELEMENT price (discount)>
<!ATTLIST price discount (yes|no) "no">
于 2013-09-24T11:18:43.673 に答える