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>
作者:Roader
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.