xsd概述

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的根元素
[html] view plaincopyprint?
  1. <?xml version="1.0"?> 
  2. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"  表示数据类型等定义来自w3 
  3. targetNamespace="http://www.w3schools.com"       表示文档中要定义的元素来自什么命名空间 
  4. xmlns="http://www.w3schools.com"                 表示此文档的默认命名空间是什么 
  5. elementFormDefault="qualified">                 表示要求xml文档的每一个元素都要有命名空间指定 
  6. ………………………… 
  7. ……定义主体部分…… 
  8. ………………………… 
  9. </xs:schema> 
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"  表示数据类型等定义来自w3
targetNamespace="http://www.w3schools.com"       表示文档中要定义的元素来自什么命名空间
xmlns="http://www.w3schools.com"                 表示此文档的默认命名空间是什么
elementFormDefault="qualified">                 表示要求xml文档的每一个元素都要有命名空间指定
…………………………
……定义主体部分……
…………………………
</xs:schema>


如何定义一个简单元素

[html] view plaincopyprint?
  1. <xs:element 此处表示要定义一个元素 
  2. name=”color” 表示要定义元素的名称 
  3. type=”xs:string” 表示要定义元素的数据类型 
  4. default=”red” 表示定义元素的默认值 
  5. fixed=”red”/> 表示要定义元素的固定值,此元素只可以取“red”值 
<xs:element 此处表示要定义一个元素
name=”color” 表示要定义元素的名称
type=”xs:string” 表示要定义元素的数据类型
default=”red” 表示定义元素的默认值
fixed=”red”/> 表示要定义元素的固定值,此元素只可以取“red”值

枚举限制
[html] view plaincopyprint?
  1. <xs:element name="car" type="carType"/> 
  2. <xs:simpleType name="carType"> 
  3.   <xs:restriction base="xs:string"> 
  4.     <xs:enumeration value="Audi"/> 
  5.     <xs:enumeration value="KIA"/> 
  6.     <xs:enumeration value="BMW"/> 
  7.   </xs:restriction> 
  8. </xs:simpleType> 
<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>

定义复杂类型
[html] view plaincopyprint?
  1. <xs:element name="person"> 
  2.   <xs:complexType> 
  3.     <xs:sequence> 
  4.       <xs:element name="firstname" type="xs:string"/> 
  5.       <xs:element name="lastname" type="xs:string"/> 
  6.     </xs:sequence> 
  7.   </xs:complexType> 
  8. </xs:element> 
<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--指示子元素可以以任何顺序出现,并且每一个元素都必须出现一次
[html] view plaincopyprint?
  1. <xs:element name="person"> 
  2.   <xs:complexType> 
  3.     <xs:all> 
  4.       <xs:element name="firstname" type="xs:string"/> 
  5.       <xs:element name="lastname" type="xs:string"/> 
  6.     </xs:all> 
  7.   </xs:complexType> 
  8. </xs:element> 
<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——指示子元素中可以出现一个或者另一个
[html] view plaincopyprint?
  1. <xs:element name="person"> 
  2.   <xs:complexType> 
  3.     <xs:choice> 
  4.       <xs:element name="employee" type="employee"/> 
  5.       <xs:element name="member" type="member"/> 
  6.     </xs:choice> 
  7.   </xs:complexType> 
  8. </xs:element> 
<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——指示子元素必须按照顺序出现
[html] view plaincopyprint?
  1. <xs:element name="person"> 
  2.   <xs:complexType> 
  3.     <xs:sequence> 
  4.       <xs:element name="firstname" type="xs:string"/> 
  5.       <xs:element name="lastname" type="xs:string"/> 
  6.     </xs:sequence> 
  7.   </xs:complexType> 
  8. </xs:element> 
<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 ——出现次数指示器
[html] view plaincopyprint?
  1. <xs:element name="person"> 
  2.   <xs:complexType> 
  3.     <xs:sequence> 
  4.       <xs:element name="full_name" type="xs:string"/> 
  5.       <xs:element name="child_name" type="xs:string" 
  6.       maxOccurs="10" minOccurs="0"/> 
  7.     </xs:sequence> 
  8.   </xs:complexType> 
  9. </xs:element> 
<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>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值