2016-11-09 62 views
2

我想用http://www.xmlvalidation.com/验证XML和DTD DTD,但在处理DTD了错误。我添加了dtd,但它不起作用。我不知道缺少什么。我将这两个文件复制并粘贴到一个页面上(没有使用外部)。 谢谢!如何验证XML和在线资源

<Bookstore> 
<Book ISBN = "ISBN-101" Price = "100" Authors = "JU JW"> 
    <Title> 
     Introduction to Python 
    </Title>  
</Book> 
<Book ISBN = "ISBN-202" Price = "120" Authors = "HG JU JW"> 
    <Title> 
     Digital Circuit Design 
    </Title> 
    <Remark> 
     Amazon.com says: Buy this book bundled with 
     <BookRef book = "ISBN-303" /> - a great deal! 
    </Remark>  
</Book> 

<Author Ident = "HG"> 
    <Firstname>Hector</Firstname> 
    <Lastname>Garcia</Lastname> 
</Author> 
<Author Ident = "JU"> 
    <Firstname>Jeffrey</Firstname> 
    <Lastname>Ullman</Lastname> 
</Author> 
<Author Ident = "JW"> 
    <Firstname>Jennifer</Firstname> 
    <Lastname>Widom</Lastname> 
</Author> 

<!ELEMENT Bookstore(Book*, Author*)> 
<!ELEMENT Book (Title, Remark?)> 
<!ATTLIST Book ISBN ID #REQUIRED 
      Price CDATA #REQUIRED 
      Authors IDREFS #REQUIRED> 

<!ELEMENT Title(#PCDATA)> 
<!ELEMENT Remark(#PCDATA | BookRef)*> 
<!ELEMENT BookRef EMPTY> 
<!ATTLIST BokkRef book IDREF #REQUIRED> 
<!ELEMENT Author(Firstname,Lastname)> 
<!ATTLIST Author Ident ID #REQUIRED> 
<!ELEMENT Firstname(#PCDATA)> 
<!ELEMENT Lastname(#PCDATA)> 

回答

1

如果你想在DTD和XML实例相结合,添加一个DOCTYPE声明,并把DTD声明的内部子集(增加一个prolog)...

<!DOCTYPE Bookstore [ 
<!ELEMENT Bookstore (Book*, Author*)> 
<!ELEMENT Book (Title, Remark?)> 
<!ATTLIST Book ISBN ID #REQUIRED 
      Price CDATA #REQUIRED 
      Authors IDREFS #REQUIRED> 

<!ELEMENT Title (#PCDATA)> 
<!ELEMENT Remark (#PCDATA | BookRef)*> 
<!ELEMENT BookRef EMPTY> 
<!ATTLIST BookRef book IDREF #REQUIRED> 
<!ELEMENT Author (Firstname,Lastname)> 
<!ATTLIST Author Ident ID #REQUIRED> 
<!ELEMENT Firstname (#PCDATA)> 
<!ELEMENT Lastname (#PCDATA)> 
]> 
<Bookstore> 
    <Book ISBN="ISBN-101" Price="100" Authors="JU JW"> 
     <Title> 
      Introduction to Python 
     </Title>  
    </Book> 
    <Book ISBN="ISBN-202" Price="120" Authors="HG JU JW"> 
     <Title> 
      Digital Circuit Design 
     </Title> 
     <Remark> 
      Amazon.com says: Buy this book bundled with 
      <BookRef book="ISBN-303"/> - a great deal! 
     </Remark>  
    </Book> 

    <Author Ident="HG"> 
     <Firstname>Hector</Firstname> 
     <Lastname>Garcia</Lastname> 
    </Author> 
    <Author Ident="JU"> 
     <Firstname>Jeffrey</Firstname> 
     <Lastname>Ullman</Lastname> 
    </Author> 
    <Author Ident="JW"> 
     <Firstname>Jennifer</Firstname> 
     <Lastname>Widom</Lastname> 
    </Author> 
</Bookstore> 

我固定在DTD声明的一些错字,但文件仍然有一个无效的IDREF的问题(缺少相应的ID)。