• Xml Schema


    W3School介绍

    http://www.w3school.com.cn/schema/index.asp

    1.头部

    <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://example.com"
    elementFormDefault="qualified">

    xml namespace 

    xmlns  代表默认namespace

    xmlns:xs 代表·namespace为xs   使用这个namespace中定义的类型时前面要加前缀"xs:"

    schemaLocation="http://www.w3school.com.cn note.xsd"    namespace xsd文件地址(相对路径)

    2.简易元素

    Element

    <xs:element name="xxx" type="yyy"/>
    • xs:string
    • xs:decimal
    • xs:integer
    • xs:boolean
    • xs:date
    • xs:time

    Attribute

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

    限制Restriction

    1 <xs:element name="age">
    2 <xs:simpleType>
    3   <xs:restriction base="xs:integer">
    4     <xs:minInclusive value="0"/>
    5     <xs:maxInclusive value="120"/>
    6   </xs:restriction>
    7 </xs:simpleType>
    8 </xs:element> 

    必须 属性

       use="required"

    
    

    3.复合元素

    有四种类型的复合元素:
    空元素
    包含其他元素的元素
    仅包含文本的元素
    包含元素和文本的元素

    <xs:element name="employee">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="firstname" type="xs:string"/>
          <xs:element name="lastname" type="xs:string"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>

    或者

    <xs:element name="employee" type="personinfo"/>
    
    <xs:complexType name="personinfo">
      <xs:sequence>
        <xs:element name="firstname" type="xs:string"/>
        <xs:element name="lastname" type="xs:string"/>
      </xs:sequence>
    </xs:complexType>

    扩展 xs:extension

    <xs:element name="employee" type="fullpersoninfo"/>
    
    <xs:complexType name="personinfo">
      <xs:sequence>
        <xs:element name="firstname" type="xs:string"/>
        <xs:element name="lastname" type="xs:string"/>
      </xs:sequence>
    </xs:complexType>
    
    <xs:complexType name="fullpersoninfo">
      <xs:complexContent>
        <xs:extension base="personinfo">
          <xs:sequence>
            <xs:element name="address" type="xs:string"/>
            <xs:element name="city" type="xs:string"/>
            <xs:element name="country" type="xs:string"/>
          </xs:sequence>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>

    4.指示器

    有七种指示器:
    Order 指示器:

    • All
    • Choice
    • Sequence

    Occurrence 指示器:

    • maxOccurs
    • minOccurs

    Group 指示器:

    • Group name
    • attributeGroup name

     5.例子

     1 <?xml version="1.0" encoding="ISO-8859-1" ?>
     2 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
     3 
     4 <xs:element name="shiporder">
     5  <xs:complexType>
     6   <xs:sequence>
     7    <xs:element name="orderperson" type="xs:string"/>
     8    <xs:element name="shipto">
     9     <xs:complexType>
    10      <xs:sequence>
    11       <xs:element name="name" type="xs:string"/>
    12       <xs:element name="address" type="xs:string"/>
    13       <xs:element name="city" type="xs:string"/>
    14       <xs:element name="country" type="xs:string"/>
    15      </xs:sequence>
    16     </xs:complexType>
    17    </xs:element>
    18    <xs:element name="item" maxOccurs="unbounded">
    19     <xs:complexType>
    20      <xs:sequence>
    21       <xs:element name="title" type="xs:string"/>
    22       <xs:element name="note" type="xs:string" minOccurs="0"/>
    23       <xs:element name="quantity" type="xs:positiveInteger"/>
    24       <xs:element name="price" type="xs:decimal"/>
    25      </xs:sequence>
    26     </xs:complexType>
    27    </xs:element>
    28   </xs:sequence>
    29   <xs:attribute name="orderid" type="xs:string" use="required"/>
    30  </xs:complexType>
    31 </xs:element>
    32 
    33 </xs:schema>

    或者 

    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    
    <!-- 简易元素的定义 -->
    <xs:element name="orderperson" type="xs:string"/>
    <xs:element name="name" type="xs:string"/>
    <xs:element name="address" type="xs:string"/>
    <xs:element name="city" type="xs:string"/>
    <xs:element name="country" type="xs:string"/>
    <xs:element name="title" type="xs:string"/>
    <xs:element name="note" type="xs:string"/>
    <xs:element name="quantity" type="xs:positiveInteger"/>
    <xs:element name="price" type="xs:decimal"/>
    
    <!-- 属性的定义 -->
    <xs:attribute name="orderid" type="xs:string"/>
    
    <!-- 复合元素的定义 -->
    <xs:element name="shipto">
     <xs:complexType>
      <xs:sequence>
       <xs:element ref="name"/>
       <xs:element ref="address"/>
       <xs:element ref="city"/>
       <xs:element ref="country"/>
      </xs:sequence>
     </xs:complexType>
    </xs:element>
    <xs:element name="item">
     <xs:complexType>
      <xs:sequence>
       <xs:element ref="title"/>
       <xs:element ref="note" minOccurs="0"/>
       <xs:element ref="quantity"/>
       <xs:element ref="price"/>
      </xs:sequence>
     </xs:complexType>
    </xs:element>
    
    <xs:element name="shiporder">
     <xs:complexType>
      <xs:sequence>
       <xs:element ref="orderperson"/>
       <xs:element ref="shipto"/>
       <xs:element ref="item" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute ref="orderid" use="required"/>
     </xs:complexType>
    </xs:element>
    
    </xs:schema>

    或者

    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    
    <xs:simpleType name="stringtype">
     <xs:restriction base="xs:string"/>
    </xs:simpleType>
    
    <xs:simpleType name="inttype">
     <xs:restriction base="xs:positiveInteger"/>
    </xs:simpleType>
    
    <xs:simpleType name="dectype">
     <xs:restriction base="xs:decimal"/>
    </xs:simpleType>
    
    <xs:simpleType name="orderidtype">
     <xs:restriction base="xs:string">
      <xs:pattern value="[0-9]{6}"/>
     </xs:restriction>
    </xs:simpleType>
    
    <xs:complexType name="shiptotype">
     <xs:sequence>
      <xs:element name="name" type="stringtype"/>
      <xs:element name="address" type="stringtype"/>
      <xs:element name="city" type="stringtype"/>
      <xs:element name="country" type="stringtype"/>
     </xs:sequence>
    </xs:complexType>
    
    <xs:complexType name="itemtype">
     <xs:sequence>
      <xs:element name="title" type="stringtype"/>
      <xs:element name="note" type="stringtype" minOccurs="0"/>
      <xs:element name="quantity" type="inttype"/>
      <xs:element name="price" type="dectype"/>
     </xs:sequence>
    </xs:complexType>
    
    <xs:complexType name="shipordertype">
     <xs:sequence>
      <xs:element name="orderperson" type="stringtype"/>
      <xs:element name="shipto" type="shiptotype"/>
      <xs:element name="item" maxOccurs="unbounded" type="itemtype"/>
     </xs:sequence>
     <xs:attribute name="orderid" type="orderidtype" use="required"/>
    </xs:complexType>
    
    <xs:element name="shiporder" type="shipordertype"/>
    
    </xs:schema>
  • 相关阅读:
    shell提交hive sql保存运行过程日志
    hive中 exists与left semi join
    hbase shell 导出数据转json
    ubuntu使用
    fast json
    elasticsearch 用户密码配置
    linux 自带php切换xampp
    Ubuntu查看crontab运行日志
    Linux服务器 XAMPP后添加PHP和MYSQL环境变量
    HBuilder 模拟器
  • 原文地址:https://www.cnblogs.com/xuemanjiangnan/p/7405112.html
Copyright © 2020-2023  润新知