Schema 基础

xiaoxiao2021-03-01  50

 

<? xml version="1.0" encoding="UTF-8" ?> <!--  以schema开始,以schema结束这个schema的声明方式:定义一个全局元素表达root元素,在元素类型中定义子元素。还有一种定义方式,所有的元素都是全局的,在元素类型定义中引用全局元素重用的几种方法:一、引用元素或组            二、导入   <xsd:include schemalocation=""/>            三、扩充或限制                <xsd:complexType name="Tname">                    <xsd:complexContent>                        <xsd:extension base="...">                            扩充内容                        </xsd:extension>                                            </xsd:complexContent>                </xsd:complexType>                <xsd:complexType name="Tname">                    <xsd:complexContent>                        <xsd:restriction base="...">                            用maxOccus限制                            <xsd:element name="..." type="xsd:string" maxOccus="0"/>                        </xsd:extension>                                            </xsd:complexContent>                </xsd:complexType>  --> < xsd:schema  xmlns:xsd ="http://www.w3.org/2001/XMLSchema"     targetNamespace ="http://www.example.org/sampleSchema"     xmlns ="http://www.example.org/sampleSchema"     elementFormDefault ="qualified" >      < xsd:annotation >          < xsd:documentation  xml:lang ="en" >             Purchase Order Schema for redzero         </ xsd:documentation >      </ xsd:annotation >          < xsd:element  name ="po"  type ="poType"   />          < xsd:simpleType  name ="skuType" >          < xsd:restriction  base ="xsd:string" >              < xsd:pattern  value ="d{3}-[a-zA-Z]{2}" ></ xsd:pattern >          </ xsd:restriction >      </ xsd:simpleType >          < xsd:complexType  name ="poType" >          < xsd:sequence >              < xsd:element  name ="billTo"  type ="addressType1" ></ xsd:element >              < xsd:element  name ="shipTo"  type ="addressType2"   />              < xsd:element  name ="order" >              <!--  匿名类型定义  -->                  < xsd:complexType >                      < xsd:sequence >                          < xsd:element  name ="item"  type ="itemType"                             maxOccurs ="unbounded" >                          </ xsd:element >                      </ xsd:sequence >                  </ xsd:complexType >              </ xsd:element >          </ xsd:sequence >          < xsd:attribute  name ="id"  type ="xsd:positiveInteger"             use ="required" >          </ xsd:attribute >          < xsd:attribute  name ="submitted"  type ="xsd:date"             use ="required" >          </ xsd:attribute >      </ xsd:complexType >      < xsd:group  name ="addressType" >          < xsd:sequence >              < xsd:element  name ="company"  type ="xsd:string" ></ xsd:element >              < xsd:element  name ="street"  type ="xsd:string"                 maxOccurs ="unbounded"   />              < xsd:element  name ="city"  type ="xsd:string" ></ xsd:element >              < xsd:element  name ="state"  type ="xsd:string" ></ xsd:element >              < xsd:element  name ="postalCode"  type ="xsd:positiveInteger" ></ xsd:element >          </ xsd:sequence >              </ xsd:group >      <!--  重用addressType,引用定义好的组,接近于编程语言的组合  -->      < xsd:complexType  name ="addressType1" >                  < xsd:sequence >              < xsd:group  ref ="addressType" ></ xsd:group >          </ xsd:sequence >          < xsd:attribute  name ="id"  type ="xsd:ID"  use ="required" ></ xsd:attribute >      </ xsd:complexType >          < xsd:complexType  name ="addressType2" >          < xsd:sequence >              < xsd:group  ref ="addressType" ></ xsd:group >          </ xsd:sequence >          < xsd:attribute  name ="href"  type ="xsd:IDREF"  use ="required" ></ xsd:attribute >      </ xsd:complexType >          < xsd:complexType  name ="itemType" >          < xsd:sequence >              < xsd:element  name ="description"  type ="xsd:string" ></ xsd:element >          </ xsd:sequence >          < xsd:attribute  name ="sku"  type ="skuType"  use ="required" ></ xsd:attribute >          < xsd:attribute  name ="quantity"  type ="xsd:positiveInteger"             use ="required" >          </ xsd:attribute >      </ xsd:complexType >          <!--  另一种重用的方法,扩充,接近于编程语言的继承  -->      <!--       <xsd:complexType name="addressType3">        <xsd:complexContent >            <xsd:extension base="addressType" >                <xsd:attribute name="id" type="xsd:ID" use="required"></xsd:attribute>            </xsd:extension>        </xsd:complexContent>    </xsd:complexType>     -->          </ xsd:schema > 相关资源:Schema-workbench
转载请注明原文地址: https://www.6miu.com/read-3650110.html

最新回复(0)