0

次のXMLコードを考えると:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hotels SYSTEM "travel.dtd">
<hotels>
    <general>
        <city>MoscowCity</city>
        <address>Sherman23</address>
        <phone>423423432423</phone>
        <hotelDetails>
            <hotel_code>1</hotel_code>
            <hotel_rank>3</hotel_rank>
            <hotel_name>Jacky</hotel_name>
        </hotelDetails>
    </general>
</hotels>

<!DOCTYPE guests SYSTEM "travel.dtd">   // HERE Validation problem 
<guests>
    <guest>
            <id>00000001-0</id>
            <guestDetails>
                <name>Jones</name>
                <city>SomewhereOnlyWeKnow</city>
                <address>NiceStreet</address>
                <state>NiceState</state>
            </guestDetails>
    </guest>
</guests>

そしてそのDTDファイル:

<?xml version="1.0" encoding="utf-8"?>
<!ELEMENT hotels (general+)>
<!ELEMENT general (city, address, phone, hotelDetails)>
<!ELEMENT hotelDetails (hotel_code, hotel_rank, hotel_name)>
<!ELEMENT address (#PCDATA)>
<!ELEMENT city (#PCDATA)>
<!ELEMENT hotel_rank (#PCDATA)>
<!ELEMENT phone (#PCDATA)>
<!ELEMENT hotel_code (#PCDATA)>
<!ELEMENT hotel_name (#PCDATA)>
<!ELEMENT guests (guest+)>
<!ELEMENT guest (id, guestDetails)>
<!ELEMENT guestDetails (name, city, address, state)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT state (#PCDATA)>

ファイルは検証されません。XMLspyの出力は次のとおりです。

 Character 'D' is grammatically unexpected

それが何を意味するのか分かりますか?

ありがとう!

4

1 に答える 1

1

1 つの XML ドキュメントに 2 つのルート要素を含めることはできないと思います。私の知る限り、これは XML の形式が正しくないことを意味するため、最初のルート要素の終了タグの後にエラー メッセージが表示されます。

于 2012-04-13T16:40:36.690 に答える