摘 要: XML技術(shù)提供了一種可以在異構(gòu)的計(jì)算機(jī)和應(yīng)用程序系統(tǒng)之間交換數(shù)據(jù)變換數(shù)據(jù)格式的方法,這種功能使得XML成為WEB應(yīng)用、電子商務(wù)、網(wǎng)絡(luò)出版、移動(dòng)通信等互聯(lián)網(wǎng)技術(shù)的重要組成部分。
關(guān)鍵詞: XML XSL XSLT 數(shù)據(jù)變換
引言
XML(Extensible Markup Language)是1998年2月W3C推出的一種標(biāo)準(zhǔn),它是一個(gè)可以自定義置標(biāo)語言的標(biāo)準(zhǔn)。XML允許各組織和行業(yè)建立獨(dú)特需要的標(biāo)記庫,它具有良好的可擴(kuò)展性。同時(shí),XML具備格式及語法結(jié)構(gòu)的準(zhǔn)確性,它使用DTD和Schema文件對(duì)XML文檔進(jìn)行嚴(yán)格的文檔格式以及數(shù)據(jù)有效性驗(yàn)證和邏輯結(jié)構(gòu)約束;一個(gè)結(jié)構(gòu)完整的XML文檔結(jié)構(gòu)樹為XML數(shù)據(jù)搜索提供了嚴(yán)謹(jǐn)有序的組織結(jié)構(gòu),所以在XML文檔中數(shù)據(jù)的檢索是精確的,搜索引擎是簡單高效的;XML技術(shù)中的XSL(Extensible Style Language)可以將數(shù)據(jù)內(nèi)容與顯示樣式分離,實(shí)現(xiàn)數(shù)據(jù)的多種表示,XSL中的數(shù)據(jù)轉(zhuǎn)換語言XSLT(XSL Transformation)能進(jìn)行數(shù)據(jù)變換格式顯示。這些功能使得XML在網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)交換中扮演類似于網(wǎng)絡(luò)數(shù)據(jù)庫的重要角色。從06級(jí)開始我們對(duì)本系軟件和信息管理技術(shù)專業(yè)學(xué)生開設(shè)了XML技術(shù)課程。XML相比于其它標(biāo)記語言(如HTML),相比于一些實(shí)用數(shù)據(jù)庫,乃至相比于一些動(dòng)態(tài)應(yīng)用開發(fā)技術(shù)(如ASP.NET、JSP),它的優(yōu)勢(shì)和生命力到底在哪里?這也正是眾多學(xué)習(xí)XML語言的學(xué)生正在疑惑著并要積極探討的問題。
1.優(yōu)勢(shì)與應(yīng)用
如前所述,XSL可以將數(shù)據(jù)內(nèi)容與顯示樣式分離,實(shí)現(xiàn)數(shù)據(jù)的多種表示;XSL由FL(Formatting Language)數(shù)據(jù)格式化語言和XSLT(XSL Transformation)數(shù)據(jù)轉(zhuǎn)換語言兩部分組成,它實(shí)際上包含了格式轉(zhuǎn)換(FL Transformation)和XSLT結(jié)構(gòu)轉(zhuǎn)換部分;XSL本身就是一個(gè)結(jié)構(gòu)完整的XML文檔,一個(gè)樣式單。XSL中的數(shù)據(jù)轉(zhuǎn)換語言XSLT能把數(shù)據(jù)從一種數(shù)據(jù)格式變換為另一種數(shù)據(jù)格式顯示。XSTL提供了一些轉(zhuǎn)換語言,這些轉(zhuǎn)換語言實(shí)際上是一些模式化的查詢語言,它們通過相關(guān)的模板定義元素及模板匹配元素遍訪XML文檔結(jié)構(gòu)樹的元素節(jié)點(diǎn)和子節(jié)點(diǎn)的值,從XML文檔中提取數(shù)據(jù)的特定語句。所以,從實(shí)質(zhì)上看,XML是定義了一種在應(yīng)用系統(tǒng)之間傳送的通用的數(shù)據(jù)結(jié)構(gòu),這是一種符合既定規(guī)則的簡單數(shù)據(jù),是可以用任何編輯器讀取的文本,這些文本可以經(jīng)過XSLT變換為各種數(shù)據(jù)格式。比如XSTL既可以把XML文檔數(shù)據(jù)轉(zhuǎn)換成一段HTML代碼顯示在IE瀏覽器或NETSCAPE瀏覽器中,也可以把XML文檔數(shù)據(jù)轉(zhuǎn)換成一個(gè)WML(Wireless Markup Language——無線標(biāo)記語言)文件或其它格式文件,顯示在移動(dòng)手機(jī)的WAP微型瀏覽器中或其它終端設(shè)備中。這種數(shù)據(jù)變換功能正是XML的一大優(yōu)勢(shì)。
鑒于此,當(dāng)前的一些主流數(shù)據(jù)庫(SQL Server、Oracle等)都提供了對(duì)XML技術(shù)的支持:可以將數(shù)據(jù)庫文件導(dǎo)入導(dǎo)出直接生成或保存為XML文件,使得數(shù)據(jù)在數(shù)據(jù)庫之間、在頁面和數(shù)據(jù)庫之間的交換與傳遞變得非常簡單。據(jù)稱作為世界上使用最廣泛的關(guān)系數(shù)據(jù)系統(tǒng)之一、全球第一大數(shù)據(jù)庫及數(shù)據(jù)庫應(yīng)用解決方案的Oracle產(chǎn)品,早在1999年就率先推出了支持XML的數(shù)據(jù)庫產(chǎn)品Oracle 8i。Microsoft于2000年1月宣布其SQL Server對(duì)XML提供支持,SQL Server 2000為用戶提供了完全集成的XML可擴(kuò)展標(biāo)記語言環(huán)境。基于XML數(shù)據(jù)交換的應(yīng)用系統(tǒng)之間交換數(shù)據(jù)的過程就是一個(gè)產(chǎn)生、傳輸和處理XML文檔的過程,通過XML在不同操作系統(tǒng)平臺(tái)(Windows NT、Unix等)下、在不同的數(shù)據(jù)庫系統(tǒng)(SQL Server、Oracle等)之間傳輸交流數(shù)據(jù),即在異構(gòu)的不兼容的操作系統(tǒng)平臺(tái)及應(yīng)用程序系統(tǒng)之間簡單輕松地傳遞并變換各種格式的數(shù)據(jù)流文件,這是XML突出的一大優(yōu)勢(shì)。
這里需要指出的是,雖然XML具備或提供了眾多實(shí)用數(shù)據(jù)庫所特有的方法和特性,比如數(shù)據(jù)存儲(chǔ)交換、模式匹配(DTD、XML schema)、查詢語言(XPath、XQuery)、編程接口(DOM、SAX)等等,但是它沒有一般數(shù)據(jù)庫的其它一些特性,比如數(shù)據(jù)庫高效的索引、存儲(chǔ)和數(shù)據(jù)修改機(jī)制,嚴(yán)格的數(shù)據(jù)安全控制,完整的事務(wù)和數(shù)據(jù)一致性控制,多用戶訪問機(jī)制,觸發(fā)器,以及完善的并發(fā)控制等等,這使它在數(shù)據(jù)集成度、性能要求、用戶數(shù)量等功能方面遠(yuǎn)不及一般的實(shí)用數(shù)據(jù)庫,但是可以自由地變換數(shù)據(jù)格式顯示并且可以簡單地跨平臺(tái)傳輸交換數(shù)據(jù)(異構(gòu)系統(tǒng)間數(shù)據(jù)的可交換性)。XML這些突出的優(yōu)勢(shì),彌補(bǔ)了XML在與數(shù)據(jù)庫比較中的一些缺失,使得XML成為或終將成為基于各種顯示設(shè)備的WEB應(yīng)用程序系統(tǒng)的重要組成部分。
2.變換與實(shí)現(xiàn)
開發(fā)基于XML的動(dòng)態(tài)應(yīng)用程序系統(tǒng)進(jìn)行動(dòng)態(tài)的數(shù)據(jù)交換和信息發(fā)布,需要一個(gè)動(dòng)態(tài)產(chǎn)生的XML文檔的支持,XML文檔可以直接由數(shù)據(jù)庫產(chǎn)生(如前所述),也可以由一個(gè)中間體來代為查詢變換實(shí)現(xiàn),比如,據(jù)稱Microsoft宣布,其下一版本SQL Server(代號(hào)為Shiloh)將是一個(gè)完全支持XML的產(chǎn)品,利用該產(chǎn)品,用戶可以在Web瀏覽器下輸入一個(gè)URL地址,即可訪問SQL Server數(shù)據(jù)庫,而返回的結(jié)果可以是一個(gè)XML文檔。目前的一些動(dòng)態(tài)WEB開發(fā)技術(shù)都可以實(shí)現(xiàn)這種查詢數(shù)據(jù)庫返回XML文檔的變換。
限于本文篇幅,在一些動(dòng)態(tài)WEB開發(fā)技術(shù)中如何通過SQL查詢?cè)L問數(shù)據(jù)庫直接生成XML文檔、如何創(chuàng)建XSL將XML變換成HTML等其它格式語言并在不同的終端瀏覽器中顯示、如何利用一些動(dòng)態(tài)WEB開發(fā)技術(shù)接收和發(fā)送XML數(shù)據(jù)(也即XML技術(shù)在數(shù)據(jù)變換中的具體的變換與實(shí)現(xiàn)),我們?cè)诤罄m(xù)的章節(jié)里完成。
3.結(jié)語
XML終將成為動(dòng)態(tài)應(yīng)用系統(tǒng)的重要組成部分,成為實(shí)現(xiàn)廣域網(wǎng)中企業(yè)之間、企業(yè)和用戶之間雙向交換數(shù)據(jù)信息的重要語言。基于XML的電子商務(wù)、電子商務(wù)、網(wǎng)絡(luò)出版、移動(dòng)通信等將成為互聯(lián)網(wǎng)技術(shù)的重要潮流。限于時(shí)間倉促,我們?cè)诖藳]有給出變換和實(shí)現(xiàn)的實(shí)例,只是拋磚引玉,希望有更多學(xué)習(xí)和關(guān)注XML語言的同仁參加討論。
參考文獻(xiàn):
[1]化銓平,張玉寶編著.XML語言及應(yīng)用[M].清華大學(xué)出版社,2008.
[2]北京阿博泰克北大青鳥信息技術(shù)有限公司編著.XML基礎(chǔ)[M].科學(xué)技術(shù)出版社,2006.