使用XML Schema学习笔记

什么是XML Schema

XML Schema 是用来定义 XML 文档结构和内容的一种 XML 语言,它是一种基于 XML 的元数据语言。XML Schema 文件通常以 .xsd 扩展名结尾,XML Schema 定义了元素(element)、属性(attribute)和类型(type)等内容。

XML Schema 中的元素、属性和类型

XML Schema 中的元素、属性和类型是用来描述 XML 文档结构和内容的关键部分。

元素 (element)

元素是 XML 文档中的基本组件,用于表示文档中的数据。XML Schema 中可以定义多个元素,并给每个元素定义名称、类型和其他属性。

例如,下面是一个简单的 XML 文档:

xmlCopy Code
<book> <title>Learning XML Schema</title> <author>Eric van der Vlist</author> <publisher>O'Reilly Media</publisher> <price currency="USD">49.99</price> </book>

这个 XML 文档包含了一个 book 元素,它有四个子元素:titleauthorpublisherprice。其中,price 元素还包含了一个 currency 属性,表示货币类型。

属性 (attribute)

属性用于为元素提供附加信息,例如关于元素的值的说明。XML Schema 中可以为元素定义多个属性,并指定每个属性的名称、类型和其他属性。

例如,上面的 price 元素就包含了一个名为 currency 的属性。

类型 (type)

类型用于声明元素或属性的值的数据类型,以及任何限制或约束。XML Schema 本身定义了一些内置类型,例如字符串、数字和布尔值等。XML Schema 还允许定义自己的类型。

例如,我们可以为 price 元素定义一个 decimal 类型的值,表示货币金额:

xsdCopy Code
<xs:element name="price" type="xs:decimal"> <xs:attribute name="currency" type="xs:string" /> </xs:element>

XML Schema 的实例

下面是一个更复杂的 XML Schema 示例,它定义了一个订单文档结构:

xsdCopy Code
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="order"> <xs:complexType> <xs:sequence> <xs:element name="customer" type="xs:string"/> <xs:element name="item" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="description" type="xs:string"/> <xs:element name="price" type="xs:decimal"/> <xs:element name="quantity" type="xs:int"/> </xs:sequence> <xs:attribute name="id" type="xs:string" use="required"/> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="id" type="xs:string" use="required"/> </xs:complexType> </xs:element> </xs:schema>

这个 XML Schema 定义了一个 order 元素,它包含两个子元素:customeritemitem 元素有三个子元素:descriptionpricequantity,以及一个 id 属性。使用这个 XML Schema 定义的 XML 文档必须符合这个结构。

例如,下面是一个符合这个 XML Schema 的订单 XML 文档:

xmlCopy Code
<order id="12345"> <customer>John Smith</customer> <item id="67890"> <description>Widget A</description> <price>49.99</price> <quantity>3</quantity> </item> <item id="24680"> <description>Widget B</description> <price>79.99</price> <quantity>1</quantity> </item> </order>

以上就是关于 XML Schema 的学习笔记。