Schema之路--基础篇

 

认不清的不是别人,认不清的是自己

 

 

Schema

 

  • 注释
  • 类型
  • 元素
  • 属性
  • 枚举限定
  • 正则限定
  • 命名空间
  • 范围限定
  • 指示器
  • 别名
  • 整体结构

 

 

注释

<xs:annotation>
    <xs:documentation>系统类型</xs:documentation>
</xs:annotation>

 

枚举限定

<xs:simpleType>
    <xs:restriction base="xs:string">
        <xs:enumeration value="CONTROL" />
        <xs:enumeration value="REQUEST" />
        <xs:enumeration value="ALARM" />
        <xs:enumeration value="FEEDBACK" />
    </xs:restriction>
</xs:simpleType>

 

元素

<xs:element name="ledid" type="xs:string" />

 

属性

<xs:attribute name="System" type="xs:string" use="required" />

 

类型

<xs:complexType mixed="true">
    <xs:attribute name="speed" type="xs:string" use="required" />
</xs:complexType>

 

命名空间

XSD:
<xs:schema attributeFormDefault="unqualified" 
        elementFormDefault="qualified" 
        xmlns:xs="http://www.w3.org/2001/XMLSchema">
XML:  
<message xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://www.ehualu.com ../atms/AtmsVms.xsd">

 

元素组:
<xs:group name="Road">
<xs:sequence>
    <xs:element ref ="RoadID"/>
    <xs:element name="RoadName" type="xs:string">
    <xs:annotation>
        <xs:documentation>道路名称</xs:documentation>
    </xs:annotation>
    </xs:element>
</xs:sequence>
</xs:group>
属性组:
<xs:attributeGroup name="personattrgroup">
    <xs:attribute name="firstname" type="xs:string"/>
    <xs:attribute name="lastname" type="xs:string"/>
    <xs:attribute name="birthday" type="xs:date"/>
</xs:attributeGroup>

 

范围限定

<xs:simpleType>
    <xs:restriction base="xs:integer">
        <xs:minInclusive value="0"/>
        <xs:maxInclusive value="120"/>
    </xs:restriction>
</xs:simpleType>

 

正则限定

<xs:simpleType>
    <xs:restriction base="xs:string">
        <xs:pattern value="[a-zA-Z][a-zA-Z][a-zA-Z]"/>
    </xs:restriction>
</xs:simpleType>

 

指示器

<all> 指示器规定子元素可以按照任意顺序出现,且每个子元素必须只出现一次
<xs:complexType>
    <xs:all>
        <xs:element name="firstname" type="xs:string"/>
        <xs:element name="lastname" type="xs:string"/>
    </xs:all>
</xs:complexType>
<choice> 指示器规定可出现某个子元素或者可出现另外一个子元素
<xs:complexType>
    <xs:choice>
        <xs:element name="employee" type="employee"/>
        <xs:element name="member" type="member"/>
    </xs:choice>
</xs:complexType>
<sequence> 规定子元素必须按照特定的顺序出现
<xs:complexType>
    <xs:sequence>
        <xs:element name="firstname" type="xs:string"/>
        <xs:element name="lastname" type="xs:string"/>
    </xs:sequence>
</xs:complexType>

 

别名

<xs:element name="customer" type="custinfo"/>
<xs:element name="kunde" substitutionGroup="customer"/>
示例:<customer /> 等同于 <kunde />

 

整体结构

<?xml version="1.0" encoding="gb2312"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="message">
        <xs:annotation>
            <xs:documentation>EHL交通集成指挥平台诱导接口规范</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="systemtype">
                    <xs:annotation>
                        <xs:documentation>系统类型</xs:documentation>
                    </xs:annotation>
                    <xs:simpleType>
                        <xs:restriction base="xs:string">
                            <xs:enumeration value="VMS" />
                            <xs:enumeration value="TGS" />
                        </xs:restriction>
                    </xs:simpleType>
                </xs:element>
            </xs:sequence>
            <xs:attribute name="System" type="xs:string" use="required" />
            <xs:attribute name="Ver" type="xs:decimal" use="required" />
        </xs:complexType>
    </xs:element>
</xs:schema>

 

 

posted @ 2013-11-10 13:43  Roader  阅读(161)  评论(0编辑  收藏  举报