赞
踩
XSD(XML Schema Definition),定义 XML 文档的合法构建模块,分为简易元素(仅包含文本的元素,不会包含任何其他的元素或属性)和复合元素(包含其他元素及/或属性的 XML 元素)。
1. 内建的数据类型:
- xs:string
- xs:decimal
- xs:integer
- xs:boolean
- xs:date
- xs:time
2. 示例:
- <?xml version="1.0"?>
- <xs:schema xmlns:xs="http://www.XXX.com/XMLSchema"
- targetNamespace="http://www.YYY.com"
- xmlns="http://www.ZZZ.com"
- xmlns:xsi="http://www.XXX.com/XMLSchema-instance"
- elementFormDefault="qualified">
- <xs:element name="note">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="to" type="xs:string"/>
- <xs:element name="age" type="xs:integer"/>
- <xs:element name="sex" type="xs:boolean"/>
- <xs:element name="date" type="xs:date"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
-
- </xs:schema>

“xs:” XSD命名控件前缀;
xmlns:xs="url" 指定 XML Schema 的命名空间,前缀为xs;
targetNamespace="url"
:定义了XSD的目标命名空间,即定义的元素和类型将属于这个命名空间;
xmlns="url"
:这个属性定义了默认命名空间,即在没有指定命名空间的情况下,元素和属性将属于这个命名空间;
xmlns:xsi="/XMLSchema-instance"
:通常用于指定 XML 实例文档中的元数据信息;
elementFormDefault="qualified"
:这个属性定义了元素的默认命名空间限定方式,qualified
表示元素必须在命名空间中被限定;
使用方法: <xs: xsd元素></xs: xsd元素>
xsd元素:
<xs:schema>
:定义整个 XML Schema 文档的根元素<xs:element>
:定义 XML 文档中的元素<xs:attribute>
:定义元素的属性<xs:sequence>
:指定元素子元素的顺序,例如:
- <xs:element name="person">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="name" type="xs:string"/>
- <xs:element name="age" type="xs:integer"/>
- <xs:element name="address" type="xs:string"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
<xs:choice>
:指定可选的元素,如:
- <!-- xs:choice> 包含了三个 <xs:element> 元素,分别定义了 "shape" 元素可以选择的子元素为 "circle"、"rectangle" 和 "triangle"。这表示在 XML 实例中,"shape" 元素可以包含其中的一个子元素,而不是全部出现 -->
- <xs:element name="shape">
- <xs:complexType>
- <xs:choice>
- <xs:element name="circle" type="xs:string"/>
- <xs:element name="rectangle">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="width" type="xs:integer"/>
- <xs:element name="height" type="xs:integer"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="triangle">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="side1" type="xs:integer"/>
- <xs:element name="side2" type="xs:integer"/>
- <xs:element name="side3" type="xs:integer"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- </xs:choice>
- </xs:complexType>
- </xs:element>

<xs:all>
:指定包含所有指定子元素的元素<xs:group>
:定义元素组合<xs:attributeGroup>
:定义属性组合<xs:simpleType>
:定义简单类型的元素结构<xs:simpleContent>
:定义包含对 简单类型元素的扩展或限制且不包含任何元素,通常与 <xs:extension>
或 <xs:restriction>
结合使用,以扩展或限制现有的简单类型,例如:
- <xs:element name="exampleElement">
- <xs:simpleType>
- <xs:simpleContent>
- <xs:extension base="xs:string">
- <xs:attribute name="attr1" type="xs:int"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:simpleType>
- </xs:element>
<xs:restriction>
:定义对 simpleType、simpleContent 或 complexContent 的约束<xs:complexType>
:定义复杂类型的元素结构<xs:complexContent>
:定义对复杂类型(包含混合内容或仅包含元素)的扩展或限制,如:
- <xs:element name="person">
- <xs:complexType>
- <xs:complexContent>
- <xs:extension base="xs:string">
- <xs:attribute name="id" type="xs:integer"/>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- </xs:element>
<xs:redefine>
:重新定义从外部架构文件中获取的简单和复杂类型、组和属性组<xs:extension>
:扩展已有的 simpleType 或 complexType 元素Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。