在XML DOM中,要验证XML文档的有效性,通常有两种主要方式:DTD(文档类型定义)和XML Schema。以下是使用XML DOM验证XML的基本方法:

1. DTD验证:
   
   DTD是一种声明性的规范,定义了XML文档的结构和允许的元素。在XML DOM中,你可以通过在XML文档中引用DTD来进行验证。以下是一个简单的例子:
   <?xml version="1.0"?>
   <!DOCTYPE bookstore [
     <!ELEMENT bookstore (book+)>
     <!ELEMENT book (title, author, price)>
     <!ELEMENT title (#PCDATA)>
     <!ELEMENT author (#PCDATA)>
     <!ELEMENT price (#PCDATA)>
   ]>
   <bookstore>
     <book>
       <title>Introduction to XML</title>
       <author>John Doe</author>
       <price>29.95</price>
     </book>
   </bookstore>

   在这个例子中,<!DOCTYPE ...> 部分引用了一个DTD,定义了 bookstore、book、title、author 和 price 元素的结构。如果XML文档不符合这个结构,解析时就会报错。

2. XML Schema验证:

   XML Schema是一种更强大和灵活的验证机制,它使用XML本身来定义文档结构和数据类型。在XML DOM中,你可以通过引用XML Schema来进行验证。以下是一个简单的例子:
   <?xml version="1.0"?>
   <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
     <xs:element name="bookstore">
       <xs:complexType>
         <xs:sequence>
           <xs:element name="book" maxOccurs="unbounded">
             <xs:complexType>
               <xs:sequence>
                 <xs:element name="title" type="xs:string"/>
                 <xs:element name="author" type="xs:string"/>
                 <xs:element name="price" type="xs:decimal"/>
               </xs:sequence>
             </xs:complexType>
           </xs:element>
         </xs:sequence>
       </xs:complexType>
     </xs:element>
   </xs:schema>
   <bookstore>
     <book>
       <title>Introduction to XML</title>
       <author>John Doe</author>
       <price>29.95</price>
     </book>
   </bookstore>

   在这个例子中,<xs:schema> 部分定义了XML Schema,规定了 bookstore、book、title、author 和 price 元素的结构和数据类型。如果XML文档不符合这个Schema,解析时会报错。

在使用XML DOM解析器时,你需要确保在解析XML文档之前配置好验证机制,以便在解析时进行验证。具体的实现方法可能因编程语言和DOM库而异。


转载请注明出处:http://www.pingtaimeng.com/article/detail/12180/XML