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