XML 验证学习笔记

什么是 XML 验证?

XML 验证是指检查 XML 文档是否符合规定的语法和结构。这种验证由文档类型定义(DTD)或 XML 模式描述语言(XSD)等文件来完成。

使用 DTD 进行 XML 验证

DTD 是一种用于定义 XML 文档结构的格式。使用 DTD 进行 XML 验证的步骤如下:

  1. 创建 DTD 文件。

  2. 在 XML 文档中引用 DTD 文件。

  3. 用根元素开始 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 元素及其子元素 tofromheadingbody

使用 XSD 进行 XML 验证

XSD 是一种基于 XML 的格式,用于描述 XML 文档的结构。使用 XSD 进行 XML 验证的步骤如下:

  1. 创建 XSD 文件。

  2. 在 XML 文档中引用 XSD 文件。

  3. 声明 XSD 文件中定义的命名空间。

  4. 用根元素开始 XML 文档。

  5. 根元素必须在 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 元素都必须包含 nameagecontact 元素。其中,contact 元素必须包含 phoneemail 元素。

总之,XML 验证是一种重要的技术,可以确保 XML 文档符合规定的语法和结构,并且能够被正确解析处理。