XSD 是目前业界的主流。它不仅定义结构,还定义数据类型。你可以规定某个字段必须是 xs:integer (整数),或者是 xs:date (日期)。
● 优点:极其严谨。如果一个 XML 声明了遵循某个 XSD,解析器会检查数据的格式(比如价格是不是数字、日期是不是 YYYY-MM-DD 格式),一旦不符合,解析就会报错。
● 应用场景:Web 服务(SOAP)、复杂的配置文件(如 Spring 框架)、Office Open XML 文件内部的校验。
<!-- 定义一个age元素,类型必须是整数 -->
<xs:element name="age" type="xs:integer" />
<!-- 定义一个price元素,类型必须是小数 -->
<xs:element name="price" type="xs:decimal" />
当你在代码(如 Java, C#, Python)中解析 XML 时,可以开启“校验模式”:
1. 解析器 读取 XML 文件。
2. 解析器 同时读取关联的 XSD 或 DTD 文件。
3. 对比:解析器会逐项检查 XML 的结构和数据是否符合定义。
4. 报错:如果 XML 里写了个 abc ,而 XSD 规定 age 必须是整数,解析器就会直接抛出错误,告诉你数据无效。