2012-04-13 5 views
0

der nächste XML-Code Gegeben:XML wird nicht mit zwei (2) Tabellen in XML validiert - zwei XMLs in einem?

<?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> 

Und seine DTD-Datei:

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

Die Datei nicht validiert wird erhalten, und XMLspy Ausgabe lautet:

Character 'D' is grammatically unexpected 

Jede Idee, was das bedeutet ?

Danke!

+0

Offensichtlich bedeutet es, dass Sie zwei XML-Dateien und speicherte sie als eine Datei, was zu ungültigen XML mit zwei Stammknoten und zwei Doctypes, während nur ein Stammknoten zulässig ist. – GSerg

Antwort

1

Ich glaube nicht, dass Sie zwei Wurzelelemente in einem XML-Dokument haben können. Soweit ich weiß, bedeutet dies, dass Ihr XML nicht wohlgeformt ist, daher die Fehlermeldung nach dem schließenden Tag des ersten Wurzelelements.

+0

Ich wurde gebeten, nur eine XML-Datei für beide Tabellen zu haben, daher kann ich sie nicht in zwei getrennte XMLs aufteilen. Keine andere Möglichkeit, das zu tun? danke – ron

+1

Die einzige Weise, die ich mir vorstellen kann, ist, die zwei Tabellen innerhalb eines neuen Wurzelelements zu setzen, aber natürlich müssten Sie dieses der DTD hinzufügen, um es ein gültiges XML-Dokument zu bilden. – TrailOfFire

+0

Okay, kannst du mir bitte ein Beispiel erklären, wie man das macht? – ron