国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > XML > 正文

從最簡單的XML文檔下來學習Schema的語法結(jié)構(gòu)

2024-09-05 20:55:14
字體:
供稿:網(wǎng)友

? ? ? ?我們可以看到,DTD的語法相當復雜,并且它不符合XML文件的標準,自成一個體系。也就是說DTD文檔本身并不是一個良好形式的XML文檔,上面的關(guān)于DTD的介紹也僅僅是作了一個簡介,目的是幫助大家能讀懂DTD文件以及在必要時創(chuàng)建簡單的DTD文件,因為現(xiàn)在很多的XML應(yīng)用是建立在DTD之上的。



? ? ? ?另外一個代替DTD的就是W3C定義的Schema,Schema從字面意義上來說,可以翻譯成模式、大綱、計劃、規(guī)劃等等。它的基本意思就是說為XML文檔制定一種模式。

? ? ? ?Schema相對于DTD的明顯好處是XML Schema文檔本身也是XML文檔,而不是像DTD一樣使用自成一體的語法。這就方便了用戶和開發(fā)者,因為可以使用相同的工具來處理XML Schema和其他XML信息,而不必專門為Schema使用特殊工具。Schema簡單易懂,懂得XML語法、規(guī)則的人都可以立刻理解它。Schema的概念提出已久,但W3C的標準最近才出來,相應(yīng)的應(yīng)用支持尚未完善,但采用Schema已成為XML發(fā)展的一個趨勢。


? ? ? ?首先我們還是從最簡單的例子著手來學習Schema的語法結(jié)構(gòu):

? ? ? ?比如一個簡單的XML文檔如下:

? ? ? ?
? ? ? ?天涯明月刀
? ? ? ?古龍
  

? ? ? ?如果用DTD的形式來定義該XML文檔結(jié)構(gòu)的話,可以如下所示:


? ? ? ?<!ELEMENT 書本 (名稱, 作者)>
? ? ? ?<!ELEMENT 名稱 (#PCDATA)>
? ? ? ?<!ELEMENT 作者 (#PCDATA)>

? ? ? ?那么用Schema形式如何定義呢?見下面的代碼:

? ? ? ?<element name='書本' type='書本類型'/>
? ? ? ?<complexType name='書本類型'>
? ? ? ?<element name='名稱' type='string'/>
? ? ? ?<element name='作者' type='string'/>
? ? ? ?</complexType>

? ? ? ?可以注意的一點是,在Schema中,也是通過對元素的定義和元素關(guān)系的定義來實現(xiàn)對整個文檔性質(zhì)和內(nèi)容的定義。同時需要注意的是,在Schema中,元素是通過它的名字和內(nèi)容模型來確定,名稱就是該元素的名字,這個大家都可以理解,而內(nèi)容模型實際上就是表示元素的類型。就象在C++中,我們可以隨便定義一個變量,但是必須定義變量的類型,變量的類型就可能有多種形式,它可以是一個簡單的變量(如C++內(nèi)部指定的類型,bool,int,double,char等等),也可以是很復雜的類型(比如是一個struct或者是class),在Schema中也是一樣,類型(type)可以分為兩種形式,一種是非常簡單的類型,被稱為simple,一種是復雜的類型,被稱為complex。簡單類型不能包含元素和屬性(注意在Schema中和DTD中一樣,都有元素屬性的說法,大道相同)。而復雜類型不僅可以包含屬性,而且可以在其中嵌套其他的元素,或者可以和其他元素中的屬性相關(guān)聯(lián)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 富平县| 昌图县| 双柏县| 石棉县| 深州市| 静宁县| 崇义县| 荆州市| 弥渡县| 湟源县| 定襄县| 上虞市| 日照市| 兰溪市| 丘北县| 远安县| 天峻县| 汕尾市| 诸城市| 佛学| 忻城县| 淳安县| 富平县| 吴桥县| 辉县市| 昌宁县| 新源县| 西乌珠穆沁旗| 东丽区| 兴城市| 抚顺县| 承德县| 五指山市| 平利县| 泸水县| 吉木萨尔县| 长寿区| 新乡县| 慈利县| 拉萨市| 太康县|