xsd概述

来源:互联网 发布:非关系型数据库 编辑:程序博客网 时间:2024/05/02 02:43

xsd概述

XML Schemas Definition, XML模式定义。本质仍是xml文档。
它定义了XML文档的结构,可以用一个指定的xsd来验证某个XML文档是否符合其要求。
XML Schema本身有很多数据种类。最常见的种类有:    * xs:string    xs:字符    * xs:decimal  xs: 小数    * xs:integer   xs:整数    * xs:boolean  xs:逻辑值    * xs:date     xs:日期    * xs:time     xs:时间 

Xml Schema的根元素
<?xml version="1.0"?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"  表示数据类型等定义来自w3targetNamespace="http://www.w3schools.com"       表示文档中要定义的元素来自什么命名空间xmlns="http://www.w3schools.com"                 表示此文档的默认命名空间是什么elementFormDefault="qualified">                 表示要求xml文档的每一个元素都要有命名空间指定………………………………定义主体部分………………………………</xs:schema>


如何定义一个简单元素

<xs:element 此处表示要定义一个元素name=”color” 表示要定义元素的名称type=”xs:string” 表示要定义元素的数据类型default=”red” 表示定义元素的默认值fixed=”red”/> 表示要定义元素的固定值,此元素只可以取“red”值

枚举限制
<xs:element name="car" type="carType"/><xs:simpleType name="carType">  <xs:restriction base="xs:string">    <xs:enumeration value="Audi"/>    <xs:enumeration value="KIA"/>    <xs:enumeration value="BMW"/>  </xs:restriction></xs:simpleType>

定义复杂类型
<xs:element name="person">  <xs:complexType>    <xs:sequence>      <xs:element name="firstname" type="xs:string"/>      <xs:element name="lastname" type="xs:string"/>    </xs:sequence>  </xs:complexType></xs:element>

使用指示器
ALL--指示子元素可以以任何顺序出现,并且每一个元素都必须出现一次
<xs:element name="person">  <xs:complexType>    <xs:all>      <xs:element name="firstname" type="xs:string"/>      <xs:element name="lastname" type="xs:string"/>    </xs:all>  </xs:complexType></xs:element>

Choice——指示子元素中可以出现一个或者另一个
<xs:element name="person">  <xs:complexType>    <xs:choice>      <xs:element name="employee" type="employee"/>      <xs:element name="member" type="member"/>    </xs:choice>  </xs:complexType></xs:element>

Sequence——指示子元素必须按照顺序出现
<xs:element name="person">  <xs:complexType>    <xs:sequence>      <xs:element name="firstname" type="xs:string"/>      <xs:element name="lastname" type="xs:string"/>    </xs:sequence>  </xs:complexType></xs:element>

minOccurs,maxOccurs ——出现次数指示器
<xs:element name="person">  <xs:complexType>    <xs:sequence>      <xs:element name="full_name" type="xs:string"/>      <xs:element name="child_name" type="xs:string"      maxOccurs="10" minOccurs="0"/>    </xs:sequence>  </xs:complexType></xs:element>


1 0