文檔定義模型為XML文檔提供了規(guī)范,DTD的引入雖然解決了XML文檔的規(guī)范化問題,但它文件格式類型和XML文件格式類型不一致,同時DTD提供的數(shù)據(jù)類型有限有時候無法滿足行業(yè)的需求,所以引入了Schema。Schema模式可以確定XML文檔的元素和屬性的結(jié)構(gòu)、元素的順序、元素和屬性的數(shù)據(jù)值,根據(jù)范圍、枚舉以及樣式匹配等。
一、Schema初識
XML Schema語言也被稱為XML Schema Definition (XSD),它的作用是定義一份XML文檔的合法組件群(XML文檔的結(jié)構(gòu)),就像DTD的作用一樣。 XML Schema以XML語言作為基礎(chǔ),也可以說XML Schema自身就是XML的一種應(yīng)用。
1、Schema作用
XML Schema和DTD的作用一樣,都是用來定義一個XML文檔的結(jié)構(gòu)的模式,那么為什么有了DTD還要有XML Schema呢? 因為,XML Schema比DTD作用更加強大。
Xml Schema 比 DTD的優(yōu)越性:
(1)模式是可擴展的
(2)模式比 DTD 功能更豐富且更有用
(3)模式是用 XML 編寫的
(4)模式支持數(shù)據(jù)類型
(5)模式支持名稱空間
(6)不需要在學(xué)習(xí)其他的語言
(7)可以直接使用XML編輯器來編寫XML Schema
(8)可以直接使用XML解析器來解析XML Schema
(9)可以使用XML DOM來靈活的操作XML Schema
(10)可以使用XSLT技術(shù)來轉(zhuǎn)換XML Schema
2、對比學(xué)習(xí)
1.1 作用上
兩者相同,都是定義了一個XML文檔的結(jié)構(gòu)的模式。
1.2 用法上
兩者作用相同,但是語法上有些區(qū)別。Schema是DTD的擴展,同樣支持元素和屬性的定義,并且定義的語法相似,但Schema可以給元素和屬性添加相應(yīng)的數(shù)據(jù)類型,同時還引入了全局和局部元素聲明的語法,另外根據(jù)元素和屬性的數(shù)據(jù)內(nèi)容引入了簡單類型和復(fù)雜類型。
所謂的簡單類型(SimpleType)和復(fù)雜類型(ComplexType),它們本身并不是具體的數(shù)據(jù)類型,它們只是對節(jié)點或者自定義類型的類型作一個抽象的說明。
也就是說Schema的引入使得模式的聲明更加類似于我們使用的編程語言。
二、實例詳解
2.1 Schema實例
清單1:User.xml文檔結(jié)構(gòu)
新聞熱點
疑難解答