XML Schema 简介

XML Schema(XSD)简介

XML Schema(简称 XSD,XML Schema Definition)是 W3C 发布的官方标准,用于严格定义 XML 文档的合法结构、数据类型和约束。它是 DTD 的现代替代品,目前在 SOAP Web Service、配置文件、企业数据交换(如金融、医疗、电信)中广泛使用。

核心作用(一句话总结)

XML Schema 就是 XML 的“设计图纸 + 数据类型检查器”,它规定了:

  • 能出现哪些元素和属性
  • 出现顺序和次数
  • 每个元素/属性的数据类型(字符串、整数、日期等)
  • 必填/选填、默认值、固定值
  • 命名空间使用规则

与老的 DTD 对比(为什么大家都用 XSD)

项目DTDXML Schema (XSD)
本身语法不是 XML完全是 XML 语法
数据类型支持几乎没有(只有文本)40+ 种内置类型(int、date、decimal 等)
命名空间支持不支持原生完美支持
可读性和维护性极差优秀(可以用 IDE 高亮、自动补全)
支持继承和复用不支持支持 complexType 继承、类型派生
行业采用情况基本被淘汰实际项目标配(尤其是 Web Service)

一个最直观的例子

合法的 XML(符合 Schema):

<person>
    <name>张三</name>
    <age>28</age>
    <email>zhangsan@example.com</email>
</person>

对应的 XML Schema 片段:

<xs:element name="person">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="name"   type="xs:string"/>
      <xs:element name="age"    type="xs:integer" minOccurs="1"/>
      <xs:element name="email"  type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

如果 XML 写成 <age>twenty-eight</age> 或缺少 <name>,验证时就会报错。

常见应用场景

  • SOAP/WSDL Web Service(强制要求用 XSD 定义消息格式)
  • Android layout 文件(早期版本)
  • Maven pom.xml、Spring 配置、各种 *.xsd 配置文件
  • 金融行业 SWIFT、SEPA、FIX 协议
  • 电子病历 HL7 CDA、FHIR 等

记住这几点就够日常使用了

  1. XSD 文件后缀通常是 .xsd
  2. 根元素永远是 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  3. 简单数据用 simpleType,有子元素或属性的用 complexType
  4. 推荐使用 targetNamespace(命名空间),避免冲突
  5. XML 实例通过 xsi:schemaLocationxsi:noNamespaceSchemaLocation 关联 XSD

简而言之:XML Schema 就是让 XML 从“能写就行”变成“必须按规则严格写”的利器,是所有需要数据严谨交换场景的必备技术。

文章已创建 2783

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部