W3C XML Schema 活动学习笔记

什么是XML Schema?

XML Schema 是一种用于描述和验证 XML 文档结构和内容的语言。它是由 W3C 组织开发的,是 XML 标准的一部分。

XML Schema 定义了 XML 文档中元素、属性、复杂类型等各个部分的结构和规则。通过使用 XML Schema,可以确保 XML 文档符合特定的规则,并且方便进行数据的交换、存储和处理。

XML Schema 的组成部分

命名空间和导入

在 XML Schema 中,我们可以使用命名空间来避免名称冲突。为了在一个 XML 文档中引用另一个 XML Schema,我们需要使用 <xs:import> 标签来导入。

元素和属性

在 XML Schema 中,元素和属性都是由类型定义(Type Definition)来定义的。元素可以包含子元素和文本内容,而属性只能包含文本内容。

我们可以使用 <xs:element> 标签来定义元素,使用 <xs:attribute> 标签来定义属性。在这些标签中,我们可以定义元素或属性的名称、类型、默认值、最小值、最大值等属性。

类型定义

在 XML Schema 中,我们可以使用两种类型定义:简单类型(Simple Type)和复杂类型(Complex Type)。

简单类型可以用来定义属性和某些元素的值,比如字符串、数值等。我们可以使用 <xs:simpleType> 标签来定义简单类型。

复杂类型可以用来定义具有层次结构的元素,包括组合元素、顺序元素、选择元素等。我们可以使用 <xs:complexType> 标签来定义复杂类型。

实例

下面是一个使用 XML Schema 定义的示例:

xmlCopy Code
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="book"> <xs:complexType> <xs:sequence> <xs:element name="title" type="xs:string"/> <xs:element name="author" type="xs:string"/> <xs:element name="price" type="xs:decimal"/> </xs:sequence> <xs:attribute name="id" type="xs:string"/> </xs:complexType> </xs:element> </xs:schema>

在这个示例中,我们定义了一个名为 book 的元素,它包含三个子元素:titleauthorprice,以及一个名为 id 的属性。每个子元素都使用 <xs:element> 标签来定义,而 book 元素则使用 <xs:complexType> 标签来定义。

titleauthorprice 都是简单类型,分别是字符串类型、字符串类型和十进制类型。而 book 则是一个复杂类型,由三个顺序元素和一个属性组成。通过这样的定义,我们可以确保 XML 文档符合特定的规则,并且方便进行数据的交换、存储和处理。