2013-05-10 5 views
0

Привет, ребята, у меня есть XML-код DTD, который является внешним, но когда я его проверю и проверю, я, кажется, получаю сообщение об ошибке. Код у меня есть ниже:Помощь со стороны 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 «

Я проверил все, но я не могу заставить его работать. Вы, ребята, можете помочь?

ответ

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 файл (связанный с XML-файл с декларацией в то же test.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">