XML Schema定义:简单类型、属性和约束

需积分: 32 1 下载量 28 浏览量 更新于2024-09-11 收藏 124KB PDF 举报
XML Schema 定义 XML 文档 XML Schema 是一种基于 XML 的语言,用于定义 XML 文档的结构和约束。它提供了一种方式来描述 XML 文档的结构、约束和关系,使得 XML 文档更加可读、可维护和可重用。 一、简单类型 简单类型是指只能包含文本内容、不能包含子元素,也没有属性的元素。简单类型可以是基本类型,如字符串、整数、布尔值等,也可以是派生类型,如枚举、模式等。 简单类型的声明格式为:<xs:element name=”xxx” type=”yyy”/> 例如:<xs:element name=”name” type=”xs:string”/> 其中,xs:element 是元素的声明,name 是元素的名称,type 是元素的类型,在这里是字符串类型。 二、属性 所有的元素属性均被声明为简单类型,只有复杂类型才可以拥有属性。属性的声明格式为:<xs:attribute name=”xxx” type=”yyy”/> 例如:<xs:attribute name=”lang” type=”xs:string”/> 所有的属性都是可选的,我们可以通过使用 use 关键字明确的指出是可选或是必须: <xs:attribute name=”lang” type=”xs:string” use=”optional”/> <xs:attribute name=”lang” type=”xs:string” use=”required”/> 我们可以通过使用 default 或 fixed 为简单类型(简单元素、属性)指定默认值或固定值。 例如:<xs:element name=”color” type=”xs:string” default=”red”> <xs:element name=”lang” type=”xs:string” fixed=”CN”> 三、对简单类型的约束 约束是对简单类型的限制,用于确保数据的正确性和一致性。XML Schema 提供了多种约束方式,包括: 1. 枚举(enumeration):定义允许值的枚举。 例如:<xs:simpleType name=”color”> <xs:restriction base=”xs:string”> <xs:enumeration value=”red”/> <xs:enumeration value=”green”/> <xs:enumeration value=”blue”/> </xs:restriction> </xs:simpleType> 2. 小数位数(fractionDigits):指定最多允许的小数位数(必需大于或小于零)。 例如:<xs:simpleType name=”price”> <xs:restriction base=”xs:decimal”> <xs:fractionDigits value=”2”/> </xs:restriction> </xs:simpleType> 3. 长度(length):精确指定允许的最大字符长度。 例如:<xs:simpleType name=”name”> <xs:restriction base=”xs:string”> <xs:length value=”10”/> </xs:restriction> </xs:simpleType> 4. 最大值(maxExclusive):指定允许的最大值,必需小于该值。 例如:<xs:simpleType name=”age”> <xs:restriction base=”xs:integer”> <xs:maxExclusive value=”100”/> </xs:restriction> </xs:simpleType> 5. 最小值(minInclusive):指定允许的最小值,大于等于该值。 例如:<xs:simpleType name=”age”> <xs:restriction base=”xs:integer”> <xs:minInclusive value=”1”/> </xs:restriction> </xs:simpleType> 6. 模式(pattern):允许值的模式,类似正则表达式。 例如:<xs:simpleType name=”phone”> <xs:restriction base=”xs:string”> <xs:pattern value=”\d{3}-\d{4}-\d{4}”/> </xs:restriction> </xs:simpleType> 7. 数字个数(totalDigits):精确指定数字个数。 例如:<xs:simpleType name=”price”> <xs:restriction base=”xs:decimal”> <xs:totalDigits value=”10”/> </xs:restriction> </xs:simpleType> 8. 空白处理(whiteSpace):处理空白,保留、替换或合并。 例如:<xs:simpleType name=”name”> <xs:restriction base=”xs:string”> <xs:whiteSpace value=”preserve”/> </xs:restriction> </xs:simpleType> 四、复杂类型 复杂类型是指可以包含子元素或属性的元素。复杂类型可以是 sequence、choice、all 等。 例如:<xs:complexType name=”person”> <xs:sequence> <xs:element name=”name” type=”xs:string”/> <xs:element name=”age” type=”xs:integer”/> </xs:sequence> </xs:complexType> XML Schema 是一种强大的语言,用于定义 XML 文档的结构和约束。它提供了一种方式来描述 XML 文档的结构、约束和关系,使得 XML 文档更加可读、可维护和可重用。