<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 評論 :: 0 Trackbacks

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

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

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

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

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

       
        由于
    Schema只有這三種子節(jié)點顯示方式,所以如果某個XML文檔要求某個節(jié)點<Person>的子節(jié)點<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


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

       3、不支持不區(qū)分大小寫匹配,如常用的 (?i),如果你要定義個節(jié)點<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é)點時<Person havaChild="true"/>就會出錯了,因為它只能區(qū)分大小寫識別所定義的字符串,假如你還需要支持<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) 評論(0)  編輯  收藏 所屬分類: XML

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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: AV片在线观看免费| 麻豆一区二区免费播放网站| 亚洲av麻豆aⅴ无码电影| 亚洲GV天堂无码男同在线观看| 国产精品久久久久免费a∨ | 久久不见久久见中文字幕免费| 中文字幕在线免费看线人| 青青操视频在线免费观看| 182tv免费观看在线视频| 亚洲日产2021三区在线 | 精品久久亚洲一级α| 久久精品国产亚洲麻豆| 毛片免费观看的视频| 三上悠亚在线观看免费| 77777亚洲午夜久久多喷| 亚洲精品成人网站在线观看| 在线视频免费观看www动漫| 久久国产精品免费一区| 亚洲一区二区三区写真| 亚洲第一精品在线视频| 亚洲日韩在线观看| 免费电影在线观看网站| 久久免费视频观看| 国产精品亚洲综合| 亚洲xxxxxx| 亚洲国产精品婷婷久久| 亚洲精品尤物yw在线影院| 最新猫咪www免费人成| 久久久免费的精品| 中美日韩在线网免费毛片视频| 77777亚洲午夜久久多喷| 青青草原精品国产亚洲av| 亚洲色精品vr一区二区三区| 国产精品酒店视频免费看| 4虎永免费最新永久免费地址| 中文在线日本免费永久18近| 国产亚洲精品2021自在线| 亚洲AV无码一区二区三区牛牛| 亚洲视频在线观看地址| 国产成A人亚洲精V品无码性色| 亚洲av再在线观看 |