<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无码app| 思思99re66在线精品免费观看| 一级毛片a免费播放王色| 亚洲视频精品在线观看| 国产禁女女网站免费看| 一级毛片全部免费播放| 黄网站色视频免费观看45分钟| 色噜噜综合亚洲av中文无码| 啊v在线免费观看| 88xx成人永久免费观看| 免费国产黄网站在线看| 亚洲欧洲国产视频| 狠狠综合久久综合88亚洲| 最近的中文字幕大全免费版| 三级网站在线免费观看| 久久精品国产亚洲av影院| 国产成人高清精品免费鸭子| 69视频免费观看l| 9久久免费国产精品特黄| 亚洲欧美日韩中文二区| 婷婷久久久亚洲欧洲日产国码AV | 免费观看成人毛片a片2008| 国产在线国偷精品免费看| 亚洲精品乱码久久久久久V| 亚洲精品美女久久久久9999| 国产啪亚洲国产精品无码| 永久免费看mv网站入口| 中字幕视频在线永久在线观看免费| 免费久久人人爽人人爽av| 国产午夜亚洲精品不卡免下载| 国产精品亚洲精品| 亚洲第一二三四区| 99久久精品国产亚洲| 亚洲av永久无码精品秋霞电影影院| 亚洲国产精品一区二区第一页免 |