理解XML
?
??? XML表示可擴(kuò)展標(biāo)記語(yǔ)言(eXtensible Markup Language).其中,"可擴(kuò)展"這個(gè)詞意味著開發(fā)者能夠自由擴(kuò)展在描述文件方面的能力,可以為自己的應(yīng)用程序定義有實(shí)際意義的標(biāo)簽.XML是基于文本的,允許開發(fā)者在各種應(yīng)用程序之間傳遞和交換結(jié)構(gòu)化數(shù)據(jù),同時(shí)大大便利了不同服務(wù)器之間的數(shù)據(jù)傳輸.用XML表注的數(shù)據(jù)能夠被所有的設(shè)備識(shí)別,從帶主機(jī)的大型機(jī)和微型機(jī),到掌上電腦和蜂窩電話.
??? 與諸如HTML,DHTML,CSS等其他網(wǎng)頁(yè)技術(shù)相比,XML更注重?cái)?shù)據(jù)的結(jié)構(gòu),而不是數(shù)據(jù)的表現(xiàn)形式.讓我們看看下面的這段代碼:
?<B>XML Bible</B>
?<P>
Elliotte Rusty Harold <BR>
IDG Books Worldwide <BR>
$39.99
??? 稍微看一下,你可能已經(jīng)知道了,它將的是一本關(guān)于書的基本信息:作者,出版社,價(jià)格.但是,這里用作標(biāo)記的元素,比如<B>,<P>等,并沒有揭示出這是一本有關(guān)書的信息,它只是描述了這幾行信息是如何顯示的.比如,在第一行中用了<B>,就表示瀏覽器處理的時(shí)候,要以粗體字顯示這行文本.
??? 同樣對(duì)這些信息,我們用XML標(biāo)注如下:
<BOOK>
<NAME>XML Bible</NAME>
<AUTHOR>Elliotte Rusty Harold</AUTHOR>
<PUBLISHER>IDG Books Worldwide</PUBLISHER>
<PRICE>$39.99</PRICE>
</BOOK>
??? 上面的小例子揭示出,通過定義一些有含義的標(biāo)簽,XML擴(kuò)展了用戶描述文件的能力.你可以根據(jù)應(yīng)用程序的需要,定義任意多個(gè)標(biāo)簽.在上面的代碼段中,沒有任何關(guān)于如何顯示信息的描述.XML將數(shù)據(jù)的結(jié)果與顯示分離開來,這似乎不太合理,其實(shí)很有益處的.
使用XML的優(yōu)越性
?
??? XML不僅對(duì)數(shù)據(jù)從服務(wù)器到客戶端的傳輸大有好處,對(duì)于應(yīng)用程序之間的數(shù)據(jù)傳輸,也是十分理想的.我們將它的優(yōu)越性列舉如下:
* 可使用特定領(lǐng)域的詞匯
*? 數(shù)據(jù)交換
*? 智能化查詢
*? 讓用戶選擇顯示的數(shù)據(jù)
*? 局部更新
可使用特定領(lǐng)域的詞匯
??? XML是沒有預(yù)定義標(biāo)簽的,你必須自己定義標(biāo)簽,用來標(biāo)注你的數(shù)據(jù).也就是說,你可以用XML創(chuàng)建自己的表注語(yǔ)言(稱為XML詞匯表).XML允許每個(gè)特定的行業(yè)根據(jù)需要定義自己的標(biāo)簽集合,這樣瀏覽器就不必處理成千上萬(wàn)的標(biāo)簽集了.利用XML,已經(jīng)創(chuàng)建了若干新的標(biāo)記語(yǔ)言,比如W3C特別推薦的MathML,一種用于顯示數(shù)學(xué)公式和科學(xué)數(shù)據(jù)的專用標(biāo)記語(yǔ)言,就是基于XML的.
數(shù)據(jù)交換
??? 數(shù)據(jù)交換在進(jìn)行電子商務(wù)的交易時(shí)是極為重要.數(shù)據(jù)交換的關(guān)鍵在于企業(yè)之間或企業(yè)內(nèi)部部門之間的標(biāo)準(zhǔn)數(shù)據(jù)接口,使用存儲(chǔ)格式不同的數(shù)據(jù)能夠進(jìn)行交換.XML為以文本格式式存儲(chǔ)的數(shù)據(jù)提供了對(duì)于結(jié)構(gòu)的定義和管理,可以作為數(shù)據(jù)交換的標(biāo)準(zhǔn)格式或協(xié)議,是數(shù)據(jù)交換雙方的系統(tǒng)差異變得無(wú)關(guān)緊要,并且產(chǎn)生清晰易讀的文件.XML避免了同類產(chǎn)品的一些常見弊病,如擴(kuò)展性差,缺乏國(guó)際化和本地化的支持,平臺(tái)相關(guān)等.作為一種非常健壯的數(shù)據(jù)交換格式,XML將繼續(xù)發(fā)展,不斷完善.
智能化查詢
??? 由于XML的出現(xiàn),只能搜索引擎將成為現(xiàn)實(shí),可將XML文檔中的數(shù)據(jù)進(jìn)行智能化搜索,得到更精確的查詢結(jié)果.為了更好的理解XML實(shí)現(xiàn)內(nèi)容定義的意義,我們來比較一下下面的兩個(gè)例子:
例1: The best pricture award in 1998 went to the film <I>Titanic</I>.
例2: The best pricture award in 1998 went to the film? <FILM>Titanic<FILM>.
在第一例子中,搜索引擎并不能確定所涉及的一艘輪船,一場(chǎng)表演,一部電影,抑或是一個(gè)形容詞.這樣的搜索精度比較低.而在第二個(gè)例子中,你能知道"Titanic"是一部電影的名字.如果現(xiàn)在搜索引擎要搜索的是電影 "Titanic",那么在這個(gè)文檔中就能找到一個(gè)精確的匹配項(xiàng).
?讓用戶選擇顯示的數(shù)據(jù)
????? XML支持用戶端的數(shù)據(jù)處理.用戶可以選擇一個(gè),若干或全部數(shù)據(jù)記錄,也可以按照不同的屬性進(jìn)行排序,或者切換到圖形化查看方式,而且不需要服務(wù)器針對(duì)每一次操作發(fā)送數(shù)據(jù).相同的數(shù)據(jù)可以用不同的方式來顯示,也可以僅僅顯示數(shù)據(jù)的一個(gè)子集,這些都取決于用戶與這些數(shù)據(jù)的相對(duì)關(guān)系.比如,會(huì)計(jì)部門是可以訪問財(cái)務(wù)信息的,而購(gòu)買東西的顧客卻不能反問這部分信息.
?局部更新
????? 當(dāng)需要更新XML文檔中的數(shù)據(jù)時(shí),并不需要更新整個(gè)頁(yè)面,而只要重新下載那些變化了的數(shù)據(jù),這顯然加快了更新的速度.例如:股票交易中的數(shù)據(jù)是動(dòng)態(tài)的,如果每次都更新整個(gè)頁(yè)面的話,都需要很多時(shí)間.而使用XML,將只改變變化了的數(shù)據(jù).
XML的設(shè)計(jì)目標(biāo)
?????
XML是針對(duì)大規(guī)模的電子出版物的挑戰(zhàn)來設(shè)計(jì)的,同時(shí)在Web數(shù)據(jù)的交換中也充當(dāng)著越來越重要的角色.
根據(jù)W3C的有關(guān)文件,XML將在如下幾個(gè)方面發(fā)揮重要作用:
* 實(shí)現(xiàn)國(guó)際化,獨(dú)立于媒體的電子出版.
* 允許個(gè)產(chǎn)業(yè)部門制訂與平臺(tái)無(wú)關(guān)的數(shù)據(jù)交換協(xié)議,尤其針對(duì)電子商務(wù)數(shù)據(jù)交換的協(xié)議.
* 使用允許自動(dòng)處理的格式,將信息傳遞給用戶代理商
* 讓人們用低價(jià)軟件就可以實(shí)現(xiàn)數(shù)據(jù)處理
* 允許人們按照自己的方式顯示信息
* 提供一種有關(guān)信息的數(shù)據(jù)(寫作 metadata),以幫助人們尋找和發(fā)現(xiàn)信息,實(shí)現(xiàn)信息的生產(chǎn)者和消費(fèi)者之間的雙向?qū)ふ?
? 任何形式電子商務(wù)的成功,都有賴于一個(gè)公共詞匯表的廣泛使用.部分XML詞匯表列舉如下:
? 頻道定義格式(CDF, Channel Definition Format)-一種基于XML的,用于創(chuàng)建web頻道的數(shù)據(jù)格式.所謂web頻道,是一種實(shí)現(xiàn)web服務(wù)器到客戶端的數(shù)據(jù)自動(dòng)發(fā)送的技術(shù).
?
? 開放軟件描述(OSD, Open Software Description)-用于網(wǎng)上自動(dòng)安裝軟件,而不需要任何人工干預(yù).
? 開放式金融交易(OFX, Open financial Exchange)-被個(gè)人金融應(yīng)用程序用來作為個(gè)人和金融組織之間進(jìn)行網(wǎng)上交流的工具.
? Meta內(nèi)容框架(MCF, Meta Content Framework)-用來定義關(guān)于信息的數(shù)據(jù),以實(shí)現(xiàn)對(duì)信息的編目和搜索.
? 資源描述框架(RDF, Resource Description Framework)-用于描述各種類型的資源,以實(shí)現(xiàn)對(duì)資源的編目,搜索和引用.
? 無(wú)線標(biāo)記語(yǔ)言(WML, Wireless Markup Language)-用于在無(wú)線網(wǎng)絡(luò)上的數(shù)據(jù)奮發(fā),采用無(wú)線訪問協(xié)議.
? 化學(xué)標(biāo)記語(yǔ)言(CML, Chemical Markup Language)-用來定義化學(xué)公式.
?
?? 數(shù)學(xué)標(biāo)記語(yǔ)言(MathML, Mathematical Markup Language)-用來定義復(fù)雜的數(shù)學(xué)公式.