契约——XSD

来源:互联网 发布:java list转json字符串 编辑:程序博客网 时间:2024/04/29 05:28

时间:2016.10.31

介绍XSD的概念和使用


1.XSD:

 XML Schema Definition
 XML表单定义文件
 可以理解为一个类的声明部分,可以用来判断一个XML表单是否是按照自己想要的更是定义的。

2.XSD基本的作用

  1. 可以定义一个XML文档里面有什么元素
  2. 可以定义一个XML文档中都有什么属性
  3. 定义某个节点的都有什么样的子节点,可以有多少个子节点,子节点出现的顺序
  4. 定义元素或者属性的数据类型
  5. 定义元素或者属性的默认值或者固定值

3.简单示例

示例XML文件:

<?xml version="1.0" encoding="utf-8" ?><Devices>    <Device>        <name>JDVT600</name>        <price>500000</price>    </Device>    <Device>        <name>JDPMT400</name>        <price>300000</price>    </Device></Devices>

创建XSD验证文件:

<?xml version="1.0" encoding="utf-8"?><xs:schema id="DevicesSchema"    targetNamespace="http://CNC.org/DevicesSchema.xsd"    elementFormDefault="qualified"    xmlns="http://CNC.org/DevicesSchema.xsd"    xmlns:mstns="http://CNC.org/DevicesSchema.xsd"    xmlns:xs="http://www.w3.org/2001/XMLSchema">    <xs:element name="Devices">        <xs:complexType>            <xs:sequence>                <xs:group ref="DeviceGroup" minOccurs="1" maxOccurs="unbounded"></xs:group>            </xs:sequence>        </xs:complexType>    </xs:element>    <!-- 定义一个Device描述信息 -->    <xs:group name="DeviceGroup">        <xs:sequence>            <xs:element name="Device">                <xs:complexType>                    <xs:sequence>                        <xs:element name="name" type="xs:string"></xs:element>                        <xs:element name="price" type="xs:integer"></xs:element>                    </xs:sequence>                </xs:complexType>            </xs:element>        </xs:sequence>    </xs:group></xs:schema>


4. 详细介绍

4.1 定义一个元素

<xs:element name="xxx" type="yyy"/>

xs:element表示定义一个元素
xxx 指元素的名称,yyy 指元素的数据类型。XML Schema 拥有很多内建的数据类型如:string, int, unsignedint, long, float

限制了xml元素得符合下列要求

<xxx >yyy类型的数据</xxx>



4.2 定义一个属性

<xs:attribute name="xxx" type="yyy"/>

xs:attribute 表示定义一个属性
xxx 指属性名称,yyy 则规定属性的数据类型

限制了xml元素得符合下列要求

<某个元素 xxx="yyy类型的数据" />



4.3 定义复合类型

<xs:complexType name="combinationType">    <xs:element name="Name" type="xs:string" />    <xs:element name="Age" type="xs:unsignedint" /></xs:complexType><!--表示接下来元素类型是complexType--><xs:element name="person" type="combinationType"/>

限制了xml元素得符合下列要求

<combinationType>    <Name>"xs:string类型数据"</Name>    <Age>"xs:unsignedint类型数据"</Age></combinationType>
0 0
原创粉丝点击