XML 验证学习笔记
什么是 XML 验证?
XML 验证是指检查 XML 文档是否符合规定的语法和结构。这种验证由文档类型定义(DTD)或 XML 模式描述语言(XSD)等文件来完成。
使用 DTD 进行 XML 验证
DTD 是一种用于定义 XML 文档结构的格式。使用 DTD 进行 XML 验证的步骤如下:
-
创建 DTD 文件。
-
在 XML 文档中引用 DTD 文件。
-
用根元素开始 XML 文档。
4.每个元素必须在 DTD 文件中定义。
例如,以下是一个使用 DTD 进行 XML 验证的示例:
xmlCopy Code<!DOCTYPE note [
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
上面的 XML 文档使用 <!DOCTYPE>
声明来引用 DTD 文件。然后,每个元素都在 DTD 文件中进行了定义,包括 note
元素及其子元素 to
、from
、heading
和 body
。
使用 XSD 进行 XML 验证
XSD 是一种基于 XML 的格式,用于描述 XML 文档的结构。使用 XSD 进行 XML 验证的步骤如下:
-
创建 XSD 文件。
-
在 XML 文档中引用 XSD 文件。
-
声明 XSD 文件中定义的命名空间。
-
用根元素开始 XML 文档。
-
根元素必须在 XSD 文件中定义。
例如,以下是一个使用 XSD 进行 XML 验证的示例:
xmlCopy Code<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="heading" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
上面的 XML 文档使用 xs:schema
元素声明 XSD 文件的命名空间,并在其中定义了 note
元素及其子元素。然后,在 XML 文档中通过 xsi:schemaLocation
属性来引用 XSD 文件。
示例
以下是一个使用 DTD 进行 XML 验证的示例:
xmlCopy Code<!DOCTYPE people [
<!ELEMENT people (person+)>
<!ELEMENT person (name,age,contact)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT contact (phone,email)>
<!ELEMENT phone (#PCDATA)>
<!ELEMENT email (#PCDATA)>
]>
<people>
<person>
<name>John Doe</name>
<age>30</age>
<contact>
<phone>1234567890</phone>
<email>johndoe@example.com</email>
</contact>
</person>
<person>
<name>Jane Doe</name>
<age>25</age>
<contact>
<phone>0987654321</phone>
<email>janedoe@example.com</email>
</contact>
</person>
</people>
上面的 XML 文档使用 DTD 文件定义了 people
元素及其子元素,并且每个 person
元素都必须包含 name
、age
和 contact
元素。其中,contact
元素必须包含 phone
和 email
元素。
总之,XML 验证是一种重要的技术,可以确保 XML 文档符合规定的语法和结构,并且能够被正确解析处理。