2012-04-13 4 views
0

Учитывая следующий код XML:XML не будет проверяться с использованием двух (2) таблиц в xml - два 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 

Любая идея это значит ?

Спасибо!

+0

Видимо, это означает, что вы взяли два файла XML и сохранили их как один файл, что привело к недопустимому XML, с двумя корневыми узлами и двумя допами, в то время как разрешен только один корневой узел. – GSerg

ответ

1

Я не думаю, что вы можете иметь два корневых элемента в одном документе XML. Насколько я знаю, это означает, что ваш XML не является корректным, поэтому сообщение об ошибке после закрывающего тега первого корневого элемента.

+0

Мне требуется иметь только один файл XML для обеих таблиц, поэтому я не могу разбить их на два разделенных XML. Нет другого способа сделать это? спасибо – ron

+1

Единственный способ, с помощью которого я могу думать, состоит в том, чтобы поместить две таблицы в новый корневой элемент, но, конечно, вам придется добавить это в DTD, чтобы сделать его допустимым XML-документом. – TrailOfFire

+0

Хорошо, пожалуйста, дайте мне пример объяснения, как это сделать? – ron