<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    yeshucheng
    追逐自己,追逐方向,心隨悟所動
    posts - 24,comments - 24,trackbacks - 0

    Xml Schema的用途

    1. 定義一個Xml文檔中都有什么元素

    2. 定義一個Xml文檔中都會有什么屬性

    3. 定義某個節點的都有什么樣的子節點,可以有多少個子節點,子節點出現的順序

    4. 定義元素或者屬性的數據類型

    5. 定義元素或者屬性的默認值或者固定值

    Xml Schema的根元素:

    <?xml version="1.0"?>

    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 表示數據類型等定義來自w3

    targetNamespace="http://www.w3schools.com" 表示文檔中要定義的元素來自什么命名空間

    xmlns="http://www.w3schools.com"表示此文檔的默認命名空間是什么

    elementFormDefault="qualified"> 表示要求xml文檔的每一個元素都要有命名空間指定

    ……定義主體部分……

    </xs:schema>

    如何定義一個簡單元素

    <xs:element  此處表示要定義一個元素

    name=”color” 表示要定義元素的名稱

    type=”xs:string” 表示要定義元素的數據類型

    default=”red” 表示定義元素的默認值

    fixed=”red”/> 表示要定義元素的固定值,此元素只可以取“red”值

    以上定義了一個簡單元素,元素實例:<color>red</color>

    如何定義一個屬性

    <xs:attribute

             name=”birthday” 表示要定義屬性的名字

             type=”xs:date” 表示要定義屬性的數據類型

             default=”2001-01-11” 表示要定義屬性的默認值

             fixed=”2001-01-11” 表示要定義屬性的固定值

             use=”required”/> 表示此屬性是否是必須指定的,即如果不指定就不符合Schema,默認沒有use=”required”屬性表示屬性可有可無

    如何定義元素或者屬性值的限制

    1.最大值最小值限制

    <xs:element name="age">

    <xs:simpleType>

    <xs:restriction base="xs:integer">

    <xs:minInclusive value="0"/> 大于等于0<xs: minExclusive>表示最小值但是不包括指定值

     <xs:maxInclusive value="120"/> 小于等于120<xs: maxExclusive>

    </xs:restriction>

    </xs:simpleType>

    </xs:element>

    2.枚舉限制,指只能在指定的幾個值中取值

             <xs:element name="car" type="carType"/>

    <xs:simpleType name="carType">

     <xs:restriction base="xs:string">

        <xs:enumeration value="Audi"/>

        <xs:enumeration value="Golf"/>

        <xs:enumeration value="BMW"/>

     </xs:restriction>

    </xs:simpleType>

    3.模式(pattern)限制,指字符串的格式必須滿足制定的匹配模式

    例子

    說明

    <xs:element name="letter">
    <xs:simpleType>
     <xs:restriction base="xs:string">
        <xs:pattern value="[a-z]"/>
     </xs:restriction>
    </xs:simpleType>

    </xs:element>

    表示只能在小寫字母中取一個值

    <xs:element name="initials">
    <xs:simpleType>
     <xs:restriction base="xs:string">
        <xs:pattern value="[A-Z][A-Z][A-Z]"/>
     </xs:restriction>
    </xs:simpleType>
    </xs:element> 

    表示必須是三個大寫字母

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

    表示必須是三個字母,可以是大寫或小寫的

    <xs:element name="choice">
    <xs:simpleType>
     <xs:restriction base="xs:string">
        <xs:pattern value="[xyz]"/>
     </xs:restriction>
    </xs:simpleType>

    </xs:element>

    表示必須是xyz中的一個

    <xs:element name="prodid">
    <xs:simpleType>
     <xs:restriction base="xs:integer">
        <xs:pattern value="[0-9][0-9][0-9][0-9][0-9]"/>
     </xs:restriction>
    </xs:simpleType>
    </xs:element> 

    表示數字的范圍是0-99999

    <xs:element name="letter">
    <xs:simpleType>
     <xs:restriction base="xs:string">
        <xs:pattern value="([a-z])*"/>
     </xs:restriction>
    </xs:simpleType>
    </xs:element> 

    表示必須是0或者多個小寫字符組成的序列

    <xs:element name="letter">
    <xs:simpleType>
     <xs:restriction base="xs:string">
        <xs:pattern value="([a-z][A-Z])+"/>
     </xs:restriction>
    </xs:simpleType>
    </xs:element> 

    表示必須是多個字母。

    <xs:element name="gender">
    <xs:simpleType>
     <xs:restriction base="xs:string">
        <xs:pattern value="male|female"/>
     </xs:restriction>
    </xs:simpleType>
    </xs:element> 

    表示是male或者female中的一個

    <xs:element name="password">
    <xs:simpleType>
     <xs:restriction base="xs:string">
        <xs:pattern value="[a-zA-Z0-9]{8}"/>
     </xs:restriction>
    </xs:simpleType>
    </xs:element> 

    表示必須是8個字母數字字符

    4.字符串長度的限制

    <xs:element name="password">

    <xs:simpleType>

     <xs:restriction base="xs:string">

        <xs:length value="8"/>

     </xs:restriction>

    </xs:simpleType>

    </xs:element>

    長度必須是8

    <xs:element name="password">

    <xs:simpleType>

     <xs:restriction base="xs:string">

        <xs:minLength value="5"/>

        <xs:maxLength value="8"/>

     </xs:restriction>

    </xs:simpleType>

    </xs:element>

    表示長度在5-8之間

    6.對于空白字符的限制

    示例

    說明

    <xs:element name="address">
    <xs:simpleType>
     <xs:restriction base="xs:string">
        <xs:whiteSpace value="preserve"/>
     </xs:restriction>
    </xs:simpleType>

    </xs:element>

    保留原樣,表示xml處理器不會移除或者替換任何空白字符

    <xs:element name="address">
    <xs:simpleType>
     <xs:restriction base="xs:string">
        <xs:whiteSpace value="replace"/>
     </xs:restriction>
    </xs:simpleType>
    </xs:element> 

    指回車,換行,Tab都會被替換成空格處理

    <xs:element name="address">
    <xs:simpleType>
     <xs:restriction base="xs:string">
        <xs:whiteSpace value="collapse"/>
     </xs:restriction>
    </xs:simpleType>
    </xs:element> 

    去掉多于一個空格,和html中處理方式相同

    如何定義復雜類型

    復雜類型是指定義元素中包含屬性或者子元素的類型

    1.定義只包含子元素的復雜類型

    <xs:element name="person">

     <xs:complexType>

        <xs:sequence>

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

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

        </xs:sequence>

     </xs:complexType>

    </xs:element>

    2.定義只包含屬性的復雜類型

    <xs:element name="product" type="prodtype"/>

    <xs:complexType name="prodtype">

     <xs:attribute name="prodid" type="xs:positiveInteger"/>

    </xs:complexType>

    3.定義只包含內容的復雜類型

    <xs:element name="shoesize" type="shoetype"/>

    <xs:complexType name="shoetype">

     <xs:simpleContent>

        <xs:extension base="xs:integer">

          <xs:attribute name="country" type="xs:string" />

        </xs:extension>

     </xs:simpleContent>

    </xs:complexType>

    4.定義包含內容和子元素混合的復雜類型

    <xs:element name="letter">

     <xs:complexType mixed="true">

        <xs:sequence>

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

          <xs:element name="orderid" type="xs:positiveInteger"/>

          <xs:element name="shipdate" type="xs:date"/>

        </xs:sequence>

     </xs:complexType>

    </xs:element>

    以上定義對應的Xml

    <letter>

    Dear Mr.<name>John Smith</name>.

    Your order <orderid>1032</orderid>

    will be shipped on <shipdate>2001-07-13</shipdate>.

    </letter>

    5.定義包含屬性和子元素的復雜類型

    使用指示器

    Xsd中的指示器包括

    1.順序指示器

    1)All

       英文解釋:The <all> indicator specifies that the child elements can appear in any order, and that each child element must occur only once
    規定子元素能夠以任意順序出現,每個子元素必須只出現一次。

    <xs:element name="person">

     <xs:complexType>

        <xs:all>

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

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

        </xs:all>

     </xs:complexType>

    </xs:element>

    2)Choice

    指示子元素中可以出現一個或者另一個

    <xs:element name="person">

     <xs:complexType>

        <xs:choice>

          <xs:element name="employee" type="employee"/>

          <xs:element name="member" type="member"/>

        </xs:choice>

     </xs:complexType>

    </xs:element>

    3)Sequence

    指示子元素必須按照順序出現

    <xs:element name="person">

     <xs:complexType>

        <xs:sequence>

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

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

        </xs:sequence>

     </xs:complexType>

    </xs:element>

    2.出現次數指示器minOccursmaxOccurs

    <xs:element name="person">

     <xs:complexType>

        <xs:sequence>

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

          <xs:element name="child_name" type="xs:string"

          maxOccurs="10" minOccurs="0"/>

        </xs:sequence>

     </xs:complexType>

    </xs:element>

    3.組指示器(group Indicators

    用來定義相關的一組元素

    <xs:group name="persongroup">

     <xs:sequence>

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

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

        <xs:element name="birthday" type="xs:date"/>

     </xs:sequence>

    </xs:group>

    <xs:element name="person" type="personinfo"/>

    <xs:complexType name="personinfo">

     <xs:sequence>

       <xs:group ref="persongroup"/>

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

     </xs:sequence>

       </xs:complexType>

    用來定義一組相關的屬性

    <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:element name="person">

     <xs:complexType>

        <xs:attributeGroup ref="personattrgroup"/>

     </xs:complexType>

    </xs:element>

    Any關鍵字

    表示可以有任意元素

    <xs:element name="person">

     <xs:complexType>

        <xs:sequence>

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

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

          <xs:any minOccurs="0"/>

        </xs:sequence>

     </xs:complexType>

    </xs:element>

    anyAttribute關鍵字

    <xs:element name="person">

     <xs:complexType>

        <xs:sequence>

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

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

        </xs:sequence>

        <xs:anyAttribute/>

     </xs:complexType>

    </xs:element>

    substitutionGroup關鍵字

    表示某一個元素和另一個替代元素定義相同

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

    <xs:element name="navn" substitutionGroup="name"/>

    <xs:complexType name="custinfo">

     <xs:sequence>

        <xs:element ref="name"/>

     </xs:sequence>

    </xs:complexType><xs:element name="customer" type="custinfo"/>

    <xs:element name="kunde" substitutionGroup="customer"/>

    文中的例子都來自w3school.

    posted on 2009-02-24 11:18 葉澍成 閱讀(396) 評論(0)  編輯  收藏
    主站蜘蛛池模板: 99在线在线视频免费视频观看| 免费大片黄在线观看| 91香蕉国产线在线观看免费| 亚洲啪啪AV无码片| a级毛片免费网站| 亚洲乱码中文字幕综合234| 精品免费AV一区二区三区| 大学生美女毛片免费视频| 亚洲中文精品久久久久久不卡| 99精品国产免费久久久久久下载| 亚洲成aⅴ人在线观看| 两性刺激生活片免费视频| 亚洲精品456人成在线| 免费网站看v片在线香蕉| 精品无码专区亚洲| 亚洲人成网站18禁止一区| 久久精品成人免费观看97| 亚洲AV无码成人精品区在线观看| 久久久久国产精品免费网站| 亚洲成电影在线观看青青| 成人性生免费视频| 色一情一乱一伦一视频免费看| 国产91精品一区二区麻豆亚洲| 免费萌白酱国产一区二区三区| 亚洲视频在线播放| 国产人在线成免费视频| 久久精品国产亚洲AV未满十八| 亚洲精品无码AV中文字幕电影网站| 99久久免费国产精品热| 4444亚洲国产成人精品| 午夜免费福利在线观看| 精品熟女少妇aⅴ免费久久 | 国产亚洲美女精品久久久2020| 亚洲精品黄色视频在线观看免费资源| 日本亚洲欧洲免费天堂午夜看片女人员 | 亚洲国产天堂久久综合| 无码av免费一区二区三区| 亚洲精品中文字幕无码A片老| 亚洲免费一区二区| aⅴ在线免费观看| 一级毛片免费在线播放|