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

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

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

    似水無痕 ^o^ 迪迪派

    ^o^ 努力學(xué)習(xí) ^o^ 努力工作 ^o^ 努力養(yǎng)老婆 ^o^

       :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      5 隨筆 :: 0 文章 :: 35 評(píng)論 :: 0 Trackbacks

       本文不是帶你走進(jìn)XML Schema的世界,如果要學(xué)習(xí)XML Schema可以參考http://www.w3schools.com/schema/default.asp ,下面主要談一下我在使用Schema時(shí)遇到的問題^o^如果有不對(duì)的地方歡迎指正哈^o^

       1、XML Schema不能通過某個(gè)屬性的具體值來決定是否顯示其它屬性或子節(jié)點(diǎn)。如下XML文檔,在Schema中將不能通過havaChild屬性來控制childrenNums屬性和<Child>子節(jié)點(diǎn)是否顯示,如果havaChildfalse,則childrenNums屬性和<Child>子節(jié)點(diǎn)沒有意義,但在Schema定義的XML文檔中仍然可以出現(xiàn),Schema不能通過驗(yàn)證來避免這種情況的發(fā)生。

     1<?xml version="1.0"?>
     2<Persons>
     3    <Person name="Ddpie" havaChild="true|false" childrenNums="2">
     4        <Child>
     5            <Name>Tony</Name>
     6            <Age>12</Age>
     7        </Child>
     8        <Child>
     9            <Name>Tom</Name>
    10            <Age>15</Age>
    11        </Child>
    12    </Person>
    13</Persons>
    14


       2、XML Schema定義XML子節(jié)點(diǎn)的顯示方式有3種:
     

    all:所有定義的子節(jié)點(diǎn)都可以顯示,注意這里用的是“可以”不是“必須”,你可以在具體的element中定義最小顯示次數(shù)minOccurs是否為0來決定該節(jié)點(diǎn)是不是“必須”顯示。但all這種顯示方式要求minOccursmaxOccurs的值只能是0或者1,也就是說你想讓某個(gè)節(jié)點(diǎn)重復(fù)出現(xiàn),在all中是無法實(shí)現(xiàn)的。

    choice:所有定義的子節(jié)點(diǎn)只能選擇一個(gè)來進(jìn)行顯示,可以重復(fù)顯示若干次,在minOccursmaxOccurs中定義最小和最大顯示次數(shù)。

    sequence:所有定義的子節(jié)點(diǎn)必須按Schema中定義的順序來進(jìn)行顯示,每個(gè)節(jié)點(diǎn)可以重復(fù)若干次,在minOccursmaxOccurs中定義最小和最大顯示次數(shù)。

       
        由于
    Schema只有這三種子節(jié)點(diǎn)顯示方式,所以如果某個(gè)XML文檔要求某個(gè)節(jié)點(diǎn)<Person>的子節(jié)點(diǎn)<Child><Friend>不限制出現(xiàn)順序和顯示次數(shù),在Schema中是無法定義的,如下XML文檔在Schema是無法定義的:

     1<?xml version="1.0"?>
     2<Persons>
     3    <Person name="Ddpie">
     4        <Child>
     5            <Name>Tony</Name>
     6            <Age>12</Age>
     7        </Child>
     8        <Friend>
     9            <Name>Lucy</Name>
    10            <Address>Beijing</Address>
    11        </Friend>
    12        <Child>
    13            <Name>Tom</Name>
    14            <Age>15</Age>
    15        </Child>
    16        <Friend>
    17            <Name>Stephen</Name>
    18            <Address>Shanghai</Address>
    19        </Friend>
    20    </Person>
    21</Persons>
    22


       同時(shí)XML Schema對(duì)正則表達(dá)式的支持也不夠完整,可能是W3C認(rèn)為沒必要全部支持,下面兩點(diǎn)是它不支持的操作:

       3、不支持不區(qū)分大小寫匹配,如常用的 (?i),如果你要定義個(gè)節(jié)點(diǎn)<Person havaChild="True|False"/>應(yīng)該是下面的代碼:

     1<xsd:element name="Person">
     2    <xsd:complexType>
     3        <xsd:attribute name="havaChild" use="required">
     4            <xsd:simpleType>
     5                <xsd:restriction base="xsd:string">
     6                    <xsd:pattern value="True|False"/>
     7                </xsd:restriction>
     8            </xsd:simpleType>
     9        </xsd:attribute>
    10    </xsd:complexType>
    11</xsd:element>

       但是當(dāng)你這樣定義你的XML節(jié)點(diǎn)時(shí)<Person havaChild="true"/>就會(huì)出錯(cuò)了,因?yàn)樗荒?strong>區(qū)分大小寫識(shí)別所定義的字符串,假如你還需要支持<Person havaChild="tRue"/>、<Person havaChild="truE"/>呢?由于XML Schema不支持“不區(qū)分大小寫的字符串匹配”,所以只能這樣做了:

     1<xsd:element name="Person">
     2    <xsd:complexType>
     3        <xsd:attribute name="havaChild" use="required">
     4            <xsd:simpleType>
     5                <xsd:restriction base="xsd:string">
     6                    <xsd:pattern value="[tT][rR][uU][eE]|[fF][aA][lL][sS][eE]"/>
     7                </xsd:restriction>
     8            </xsd:simpleType>
     9        </xsd:attribute>
    10    </xsd:complexType>
    11</xsd:element>


       4、不支持單詞邊界匹配,如常用的 \b和\B,所以如果需要匹配單詞邊界的話,只能在所要匹配的單詞后面加上\s了,呵呵,沒辦法^o^

    posted on 2007-05-18 09:54 ddpie 閱讀(4855) 評(píng)論(0)  編輯  收藏 所屬分類: XML

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 中文字幕亚洲一区| 一个人免费观看日本www视频| 亚洲天堂在线播放| 全免费a级毛片免费看不卡| A片在线免费观看| 日韩免费高清一级毛片| 亚洲中文字幕久久精品无码2021| 亚洲中文字幕无码中文字在线 | 中文字幕亚洲不卡在线亚瑟| 曰批全过程免费视频在线观看| 国产真人无码作爱免费视频| 国产亚洲视频在线观看网址| 在线观看亚洲AV日韩AV| 中文字幕亚洲色图| 亚洲AV日韩精品久久久久久| 国产亚洲美日韩AV中文字幕无码成人| 国产老女人精品免费视频| 青娱分类视频精品免费2| 4399影视免费观看高清直播| 国产成人免费AV在线播放| 香蕉免费一级视频在线观看| 免费精品国自产拍在线播放| 色婷婷亚洲一区二区三区| 亚洲人成自拍网站在线观看| 亚洲中文字幕无码一去台湾 | 色www永久免费网站| 一区二区三区视频免费观看| 杨幂最新免费特级毛片| 亚洲av日韩综合一区久热| 久久亚洲国产最新网站| 亚洲人成网国产最新在线| 久久精品国产亚洲AV忘忧草18| 亚洲最大在线观看| 亚洲国产精品人久久电影| 亚洲国产精品综合久久2007 | 成年人在线免费观看| 男女免费观看在线爽爽爽视频| 久草视频免费在线| 无码国产精品一区二区免费I6| 欧亚精品一区三区免费| 免费看无码自慰一区二区|