XML Schema 总结学习笔记

什么是XML Schema?

XML Schema是一种XML文档的语言,用于描述XML文档中元素的结构和数据类型。它定义了XML文档中允许使用哪些元素、哪些属性以及它们的约束条件,使得XML文档的结构更加严谨,有利于数据的交换和处理。

XML Schema的语法结构

XML Schema是基于XML的语言,它自己也拥有一套语法规则,比如元素、属性、复杂类型、简单类型等等。

元素(element)

在XML Schema中,一个元素就是指XML文档中的标签。元素可以包含其他元素或者属性等内容,同时它还可以定义命名空间、类型等信息。

属性(attribute)

属性是指XML文档中的标签所带有的特殊的信息。一个标签可以带有多个属性,每个属性都拥有一个名称和对应的值。

Copy Code
<book ISBN="978-7-302-42848-3" price="39" publishDate="2021-01-01"> <title>XML Schema 总结学习笔记</title> <author>Binjie09</author> </book>

上述XML代码中,book元素带有三个属性:ISBN、price和publishDate。

复杂类型(complexType)

复杂类型是指XML文档中的元素类型,它可以包含其他元素、属性等内容。复杂类型通常用于描述XML文档中的复杂结构,比如一个学生信息包含姓名、年龄、性别等多个属性或元素。

简单类型(simpleType)

简单类型是指XML文档中的数据类型,用于规定XML文档中元素或属性所对应的数据类型,包括字符串、数字、日期、时间等等。

XML Schema实例

下面是一个XML Schema的实例代码,用于定义一种名为book的元素类型,它带有三个属性:ISBN、price和publishDate。其中,ISBN属性的值必须满足ISBN标准;price属性的值必须为非负整数;publishDate属性的值必须为ISO-8601标准的日期格式。

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:sequence> <xs:attribute name="ISBN" type="xs:string" pattern="^([0-9]{10}|[0-9]{13})$"/> <xs:attribute name="price" type="xs:nonNegativeInteger"/> <xs:attribute name="publishDate" type="xs:date" use="required" /> </xs:complexType> </xs:element> </xs:schema>

以上代码定义了一个名为book的元素类型,它必须包含一个名为title和一个名为author的子元素。同时,它还定义了三个属性:ISBN、price和publishDate。其中,ISBN属性的值必须为10位或13位数字;price属性的值必须是非负整数;publishDate属性是必须的,并且必须为日期格式。

这个XML Schema可以被用于验证XML文档是否符合要求。如果一个XML文档不符合这个Schema的要求,那么它将不被视为有效的XML文档。