談XML的優(yōu)勢(shì)
可能有用戶會(huì)提出這樣的疑問(wèn):既然我們已經(jīng)擁有逐步完善的HTML,為何還需要一種針對(duì)Web的全新語(yǔ)言呢?為何還要發(fā)展XML呢?讓我們通過(guò)XML、SGML與HTML的比較來(lái)回答這些問(wèn)題吧。
XML由SGML演變而來(lái),但是,XML并不是SGML,的一種應(yīng)用,而是它的子集。XML,在許多方面都與SGML雷同。任何用XML完成的工作同樣也可以用SGMI。來(lái)完成。既然如此,為何還需要XML呢?簡(jiǎn)單地說(shuō),XML擁有SGML80%的功能,但其復(fù)雜程度卻只有SGML的20%。xML能有效地在互聯(lián)網(wǎng)上應(yīng)用,因而XML,帶來(lái)了在SGML中所沒(méi)有的優(yōu)點(diǎn),而且XML能與HTML整合來(lái)描述與顯示數(shù)據(jù)。在Web上傳遞數(shù)據(jù)方面,
XML擁有了幾個(gè)超越SGML的優(yōu)點(diǎn):
XML的規(guī)模比SGML小。二者的規(guī)范書(shū)的厚度就證明了這一點(diǎn):基本的SGML規(guī)范書(shū)約有155頁(yè)之多,而XML規(guī)范書(shū)卻只有35頁(yè)。
XML包含可擴(kuò)展鏈接語(yǔ)言xLL。XML不僅支持在HTML中的基本超級(jí)鏈接,并且更進(jìn)一步擴(kuò)展鏈接的概念。雖然,SGML允許定義超級(jí)鏈接機(jī)制,但它并沒(méi)有將超級(jí)鏈接納入初版的規(guī)范書(shū)中。
XML包含可擴(kuò)展樣式語(yǔ)言XSL.XSL提供支持樣式機(jī)制,并提供一些在SGML中所沒(méi)有的支持,允許文件作者建立各種風(fēng)格(粗體、斜體等)的樣版,或者結(jié)合各種風(fēng)格并將它們應(yīng)用到文件的元素中。
由于HTML語(yǔ)言在實(shí)際應(yīng)用中越來(lái)越無(wú)法滿足用戶的需求,因此出現(xiàn)了新標(biāo)記語(yǔ)言XML。XML可以很容易地定義新的應(yīng)用標(biāo)記,而這一點(diǎn)是HTML所不能夠?qū)崿F(xiàn)的。由于XML是SGML的子集,所以XML文件也像其他的SGML文件(如HTML)一樣,可以被解析和驗(yàn)證其有效性。
由此可見(jiàn),相對(duì)原來(lái)的SGML和HTML,XML,都顯示出高人一籌的優(yōu)越性。
XML提供了一種標(biāo)準(zhǔn)化、靈活、強(qiáng)大的方法,用于在許多不同平臺(tái)和應(yīng)用程序之間交換數(shù)據(jù)。市場(chǎng)上已經(jīng)有許多成熟的軟件可用來(lái)幫助編寫(xiě)、管理XML文件,它是一種開(kāi)放式標(biāo)準(zhǔn),是實(shí)現(xiàn)網(wǎng)絡(luò)功能的***選擇。XML給人的感覺(jué)是高效而且可擴(kuò)充的,事實(shí)上也確實(shí)如此。
XML支持DTD,使用者可以創(chuàng)建和使用自己的標(biāo)記,也可與他人共享。XML的可擴(kuò)展性很大,在XML中,可以定義無(wú)限量的標(biāo)記。XML提供了一個(gè)獨(dú)立的運(yùn)行程序的方法,并通過(guò)這種方法來(lái)共享數(shù)據(jù)。具體的做法就是通過(guò)使用DTD,使不同組中的人能夠使用共同的DTD來(lái)交換數(shù)據(jù)。應(yīng)用程序可以使用這個(gè)標(biāo)準(zhǔn)的DTD來(lái)驗(yàn)證收到的數(shù)據(jù)是否有效,也可以使用一個(gè)DTD來(lái)驗(yàn)證自己的數(shù)據(jù)。
XML標(biāo)準(zhǔn)已經(jīng)國(guó)際化,它支持世界上大多數(shù)的文字。這源于它的統(tǒng)一代碼的新編碼標(biāo)準(zhǔn),這種編碼標(biāo)準(zhǔn)支持世界上所有以編程語(yǔ)言(如C/C++/BasicNisual Basic/JavaScript/Perl)編寫(xiě)的混合文本。凡能閱讀XML語(yǔ)言的軟件都能順利處理這些不同語(yǔ)言字符的任意組合。因此,XML不僅能在不同的計(jì)算機(jī)系統(tǒng)之間交換信息,而且能跨越國(guó)界和不同文化疆界交換信息。
XML可用于不同類型、系統(tǒng)間的交換格式的傳送,從而簡(jiǎn)化了從一個(gè)應(yīng)用程序到另一個(gè)應(yīng)用程序之間傳遞信息的工作。XML的特性給應(yīng)用軟件賦予了強(qiáng)大的功能和靈活性,也給開(kāi)發(fā)者和用戶帶來(lái)諸多好處,如下所示:
數(shù)據(jù)可以被XML惟一標(biāo)識(shí),因此可以實(shí)現(xiàn)更有意義的網(wǎng)絡(luò)搜索。
數(shù)據(jù)一旦建立,可將XML,文件發(fā)送到其他應(yīng)用軟件、對(duì)象或中間層服務(wù)器中做進(jìn)一步處理或發(fā)到客戶端瀏覽器中直接瀏覽。
描述數(shù)據(jù)結(jié)構(gòu)的標(biāo)記可以被重復(fù)使用,XML能使異構(gòu)數(shù)據(jù)庫(kù)中的數(shù)據(jù)比較容易集成。
XML具有擴(kuò)展性和靈活性的特點(diǎn),能描述各種應(yīng)用軟件中的數(shù)據(jù)。
為實(shí)現(xiàn)本地計(jì)算和處理,提供了更為便捷的手段。
可以根據(jù)客戶配置、使用者選擇和其他標(biāo)準(zhǔn),將本地XML數(shù)據(jù)動(dòng)態(tài)地表現(xiàn)出來(lái)。
通過(guò)XMI_,,可以實(shí)現(xiàn)粒狀數(shù)據(jù)的更新。
XML的開(kāi)放是基于文本的格式的,可以用HTTP進(jìn)行傳送,無(wú)需對(duì)現(xiàn)有網(wǎng)絡(luò)進(jìn)行變更。
XML實(shí)現(xiàn)了內(nèi)容與顯示完全分開(kāi),可以更加靈活地進(jìn)行編程,減少了服務(wù)器的工作量。
增強(qiáng)了服務(wù)器的升級(jí)性能。
由于XML是在HTML之后才發(fā)展起來(lái)的,所以許多人就將XML認(rèn)為是HTML的替代品。事實(shí)上,這兩種語(yǔ)言對(duì)數(shù)據(jù)的處理是不同的。例如,XML用來(lái)在Web上結(jié)構(gòu)化和描述數(shù)據(jù);HTML則更適合用來(lái)格式化數(shù)據(jù)。因?yàn)榇蟛糠諬TML網(wǎng)頁(yè)不但儲(chǔ)存數(shù)據(jù),也同時(shí)將數(shù)據(jù)格式化,任何對(duì)HTML的置換都將在數(shù)據(jù)儲(chǔ)存區(qū)內(nèi)發(fā)生。在許多情況下,XML可以接管資料儲(chǔ)存的工作(還有資料描述的工作),如此一來(lái),HTML只被用來(lái)作數(shù)據(jù)的格式化與腳本。而且可以將HTML格式轉(zhuǎn)化為XML格式。
此外,用戶可以在XML中開(kāi)發(fā)出其他的語(yǔ)言與標(biāo)記,可以定義自己的標(biāo)記集(tag set)。
【編輯推薦】