Read Sean

          Read me, read Sean.
          posts - 508, comments - 655, trackbacks - 9, articles - 4

          [XML學(xué)習(xí)筆記](méi)[2.1]XML驗(yàn)證

          Posted on 2005-02-19 20:28 laogao 閱讀(343) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): On Java

           

          為了使得我們定義的XML文檔有意義,我們通常必須為它定義一組語(yǔ)法,如:這個(gè)文檔應(yīng)該包含那種類(lèi)型的數(shù)據(jù),這種數(shù)據(jù)的層次結(jié)構(gòu)又是怎樣的,等等。這樣我們的XML文檔就可以通過(guò)專門(mén)的工具來(lái)驗(yàn)證其合法性。

          有兩種方式:I- DTD (document type definition); II- XSD (XML Schema definition),我們分別來(lái)看一下。

          DTD比較簡(jiǎn)單和直截了當(dāng),它可以很容易的定義元素和元素之間的隸屬關(guān)系,如:

          <!ELEMENT customer-repository (customer+)>

          <!ELEMENT customer (name, register-date, visits)>
          <!ATTLIST customer
            index ID #REQUIRED
          >

          <!ELEMENT name (#PCDATA)>
          <!ATTLIST name
            first-name CDATA #REQUIRED
            last-name CDATA #REQUIRED
          >

          <!ELEMENT register-date (#CDATA)>

          <!ELEMENT visits (#CDATA)>

          <!ELEMENT>用于定義元素,同時(shí)可以定義該元素是否包含其他元素,<!ATTLIST>用于定義元素的屬性,具體的語(yǔ)法可以參考http://www.w3c.org/xml/ 上的文檔。為了把我們的XML文檔和上面定義的語(yǔ)法聯(lián)系到一起,我們需要在XML中加入這樣一行代碼:

          <!DOCTYPE customer-repository SYSTEM "customer-repository.dtd">

          與DTD類(lèi)似,XSD也是通過(guò)一些規(guī)則來(lái)定義一類(lèi)XML的語(yǔ)法,它比DTD更加靈活,也更加強(qiáng)大,是目前W3C主推的XML驗(yàn)證標(biāo)準(zhǔn)。它通過(guò)一些命名空間已經(jīng)定義好的元素類(lèi)型來(lái)定義我們的XML語(yǔ)法,如:

          <xsd:element name="visits" type="xsd:decimal" />

          這里的xsd就是我們要用到的名字空間。由于目前大部分的XML還都是使用DTD的方式,對(duì)XSD的了解就到這里吧。有興趣的可以去W3C的網(wǎng)站了解具體語(yǔ)法。

           

          主站蜘蛛池模板: 枣强县| 彰化县| 霍山县| 宁明县| 施甸县| 衡阳县| 格尔木市| 龙岩市| 志丹县| 云浮市| 微山县| 徐汇区| 扎赉特旗| 增城市| 桑植县| 德格县| 新田县| 诸暨市| 万年县| 郯城县| 六安市| 东丰县| 白河县| 衡东县| 锡林郭勒盟| 遂川县| 游戏| 庐江县| 米脂县| 大洼县| 乌拉特中旗| 达拉特旗| 邯郸市| 荥阳市| 黎城县| 长海县| 思南县| 勐海县| 定西市| 隆子县| 佛坪县|