2013-05-10 59 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">