XML Schema 教程


XML Schema 教程

XML Schema是一种用于定义XML文档结构、元素内容和数据类型的语言,是XML的一种标准格式。通过使用XML Schema,可以定义和限制一个XML文档中元素和属性的使用。

创建XML Schema文档

XML Schema文档是用于定义XML文档结构和数据类型的文档,其文件后缀名为.xsd。可以用纯文本编辑器创建XML Schema文档。

以下是一个简单的XML Schema文档示例:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:element name="student" type="xs:string"/>

</xs:schema>

在这个例子中,定义了一个名为“student”的元素,该元素的类型为字符串。

定义元素和属性

XML Schema定义了一个文档中所包含的所有元素和属性,以及每个元素、属性所可包含的内容和类型。下面是一个更完整的XML Schema示例,展示了如何定义元素和属性:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:element name="students">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="student" type="xs:string"/>
        <xs:element name="age" type="xs:integer"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:attribute name="id" type="xs:string"/>

</xs:schema>

在这个例子中,定义了一个名为“students”的元素,该元素包含了两个子元素,一个是名为“student”的字符串类型元素,另一个是名为“age”的整数类型元素。此外,还定义了一个名为“id”的属性,类型为字符串。

定义数据类型

XML Schema还允许定义自定义数据类型。以下是一个XML Schema示例,演示了如何定义一个自定义的日期类型:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:element name="birthday" type="date"/>

  <xs:simpleType name="date">
    <xs:restriction base="xs:date"/>
  </xs:simpleType>

</xs:schema>

在这个例子中,定义了一个名为“birthday”的元素,类型为自定义的日期类型。日期类型是通过简单类型来定义的,该简单类型基于XML Schema的内置日期类型。

引用XML Schema

XML文档可以引用一个XML Schema文件,以便验证其结构和数据类型。在XML文档中使用xmlns属性来指定XML Schema的命名空间。

以下是一个XML文档的示例,引用了前面定义的XML Schema:

<?xml version="1.0" encoding="UTF-8"?>
<students xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="students.xsd">

  <student>John Smith</student>
  <age>22</age>
  <birthday>2021-01-01</birthday>
  <moreinfo id="001"/>

</students>

在这个例子中,XML文档包含了之前定义的“students”元素及其子元素。使用xsi:noNamespaceSchemaLocation属性来指定XML Schema文件的路径。可以看到,该文档中包含了一个自定义的日期类型及一个名为“moreinfo”的未在XML Schema中定义的元素。

以上就是一个简单的XML Schema教程。要使用XML Schema成功地定义一个复杂的XML文档,需要深入学习XML Schema的各种元素和规则,并应用这些知识来设计和编写符合需要的XML Schema文件。