验证XML

2020-06-18

1. 前言

  • 如果我们解析XML之后,获取到XML的内容,再校验XML内容或格式是否符合设计规范,这个工作是很繁琐的。
  • 幸好,XML解析器的一个很大的好处就是它能够自动校验某个文档是否具有正确的结构,这样解析工作就变的简单的多。
  • 通过定义一个 DTD 或者 XML Schema, DTD 或者 Schema 包含了用于解释文档如何构成的规则,这些规则指定了每个元素的合法子元素和属性。

2. 定义DTD校验规则

XML文档

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?xml version="1.0" encoding="UTF-8" ?>
<!-- 定义DTD校验规则 -->
<!DOCTYPE class [
<!-- 定义class至少包含一个student -->
<!ELEMENT class (student+)>
<!-- 定义student只包含name,age,sex,className属性 -->
<!ELEMENT student (name, age, sex, className)>
<!-- 定义id属性, 属性默认值为0 -->
<!ATTLIST student id CDATA "0">
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT sex (#PCDATA)>
<!ELEMENT className (#PCDATA)>
]>
<class>
<student id="1">
<name>sungm</name>
<age>25</age>
<sex>Man</sex>
<className>Class One</className>
</student>
<student id="2">
<name>sunhw</name>
<age>1</age>
<sex>Man</sex>
<className>Class Two</className>
</student>
</class>