Web的新生命——XML
發(fā)布時間:2008-08-23 閱讀數(shù): 次 來源:網(wǎng)樂原科技
1996年11月,波士頓SGML世界年會產(chǎn)生一項重大變革:與會代表一致公認(rèn)將目前InternetHomepage撰寫標(biāo)準(zhǔn)HTML宣告終結(jié),取而代之,采用最新電子文件格式化通用標(biāo)準(zhǔn)——可擴展的標(biāo)識語言XML(Extensible Markup Language)。
根據(jù)美國電子商務(wù)專家預(yù)測,XML可以改善傳統(tǒng)網(wǎng)頁設(shè)計語言HTML的描述方式,未來將可取代HTML成為新一代的網(wǎng)頁標(biāo)示語言,這轉(zhuǎn)變將革命性地改變以Web為基礎(chǔ)的電子商業(yè)應(yīng)用型態(tài)。利用XML所具有的可擴展性以及自我描述(slef-descriptive)特性,Web文件可以在企業(yè)間的應(yīng)用程序中自動傳輸、處理及儲存,不同廠商的電子商品可以在同一個使用者界面同時展現(xiàn),資訊的搜尋變得更為精確快速,不同系統(tǒng)間可以流暢的互通,而中小企業(yè)也可以輕易享受EDI的好處。
一、從HTML到XML
其實,早就有一個全世界標(biāo)準(zhǔn)的標(biāo)識語言,可以用來定義某一類文件格式標(biāo)志,那就是電子通訊文件交換格式標(biāo)準(zhǔn)語言SGML(Standard Generalized Markup Language)。它是一個國際性標(biāo)準(zhǔn)(ISO8879),用來形容和定義結(jié)構(gòu)化的電子文件,在1980年代就制訂了。不過,由于SGML太過于詳細和復(fù)雜,所以一直沒有被廣泛地采用。
Internet的廣泛應(yīng)用,需要人人都易上手的描述語言。作為SGML的子集,超文本標(biāo)識語言HTML應(yīng)運而生。它受到Internet和全球資訊網(wǎng)熱潮的推波助瀾,很快地就成為在網(wǎng)上制作頁面的標(biāo)準(zhǔn)語言。
XML也是從SGML所衍生出來的簡化格式,它取名叫做可以延伸的標(biāo)示語言(ExtensibleMarkupLanguage)的原因主要是有別于HTML那種單一固定的語法,要讓制作頁面時,有一個更具彈性、更容易添加新功能,而又不失統(tǒng)一標(biāo)準(zhǔn)的語言格式。相對于HTML只是SGML衍生出來的一種文件格式,XML則免除了SGML的繁復(fù)但仍保持其威力,這使SGML的優(yōu)秀品質(zhì)能方便而直接地被用在Web開發(fā)上。
嚴(yán)格說起來,XML本身不是一個單一的標(biāo)示語言,它是一種元語言(meta-language),可以被用來定義任何一種新的標(biāo)示語言。像HTML之類的傳統(tǒng)標(biāo)示語言,是用來定義某一類文件的格式,以便于展示或列??;而XML則是可以用來創(chuàng)造類別文件的格式定義,也就是在XML之中可以創(chuàng)造出很多不同的標(biāo)示語言,用來定義不同的文件類別。
XML繼承了SGML具有的可擴展性、結(jié)構(gòu)性及可校驗性,與HTML語言相比,區(qū)別主要在三方面:
(1)可擴展性方面:HTML不允許用戶自行定義他們自己的標(biāo)識或?qū)傩裕赬ML中,用戶能夠根據(jù)需要,自行定義新的標(biāo)識及屬性名,以便更好地從語義上修飾數(shù)據(jù)。(2)結(jié)構(gòu)性方面:HTML不支持深層的結(jié)構(gòu)描述,XML的文件結(jié)構(gòu)嵌套可以復(fù)雜到任意程度,能表示面向?qū)ο蟮牡燃墝哟?。?)可校驗性方面:HTML沒有提供規(guī)范文件以支持應(yīng)用軟件對HTML文件進行結(jié)構(gòu)校驗;而XML文件可以包括一個語法描述,使應(yīng)用程序可以對此文件進行結(jié)構(gòu)確認(rèn)。
需要指出的重要一點是,HTML與XML二者相互之間并不是競爭關(guān)系,而是互相補充的關(guān)系。各種瀏覽器都將能夠處理這兩種語言,而且將來的HTML標(biāo)準(zhǔn)可能允許在同一文檔中混合使用HTML和XML。
二、XML語言結(jié)構(gòu)
XML有許多部分,但是只需要了解其中的三個就可以了解它是怎樣工作的。它們是:文檔類型定義(Document Type Definition,DTD),也就是XML的布局語言;可擴展的樣式語言(Extensible Style Language:XSL),也就是XML的樣式表語言;以及可擴展鏈接語言(Extensible Link Language:XLL)。
我們以一份菜譜為例子。
Carol Schmidt
Chocolate Chip Bars
DinnerDessert
2/3Cbutter
2Cbrownsugar
1tspvanilla
……
Preheat oven to 350 degrees. Meltbutter;
combine with brown sugar and vanillain large mixing bowl.……
這就是一份可以接受的XML文檔,它告訴了你XML是什么:把數(shù)據(jù)以一種有實際意義的方式進行組織。
表面上看,XML文件與HTML文件比較相似,都以一對相互匹配的起始和結(jié)束標(biāo)記符來標(biāo)記信息,但二者功能不同,HTML的標(biāo)記符用來顯示數(shù)據(jù),XML的標(biāo)記符則是描述數(shù)據(jù)對角,后者可以多種方式顯示,這和把地址簿的信息放在數(shù)據(jù)庫的字段和記錄中而不是放在字處理器產(chǎn)生的清單中的道理一樣,數(shù)據(jù)庫可以讓你把地址簿中的信息合成到標(biāo)簽、信封、信件或其它任何想要的載體上面。最終,就是把這份XML菜譜文件合成到一種表現(xiàn)語言中,如HTML或CSS上顯示出來。
XML的標(biāo)記符也可以由其他應(yīng)用軟件進行深入的處理,你可以告訴其它程序如何使用這些有意義的標(biāo)記符;也可以通過編碼把標(biāo)記符中的內(nèi)容放入數(shù)據(jù)庫的某個域中,然后把它輸出到一本書的硬拷貝中;還可以用一個支持XML的字處理器使網(wǎng)頁的出版輕而易舉;等等。這就是XML的本質(zhì):使標(biāo)記對人和機器都可讀。
從例子可以看出,一個XML文件必須滿足以下三項基本規(guī)則:
?。?)文檔以XML定義開始。1.0表示其版本編號;(2)有一個包含所有其它內(nèi)容的根元素,如上面例子中的和標(biāo)記符;(3)所有元素必須合理地嵌套,不允許交叉嵌套。這在HTML中可能不算什么,因為瀏覽器已經(jīng)被設(shè)計成可以處理這種問題。但是在XML中卻是致命的——應(yīng)用程序?qū)⒕芙^處理沒有組織好的文件。
三、XML應(yīng)用范圍
XML是一種網(wǎng)絡(luò)標(biāo)準(zhǔn),能夠簡化互聯(lián)網(wǎng)和企業(yè)網(wǎng)上的數(shù)據(jù)交換,自1996年開發(fā)以來已取得了巨大進展。
按照XML工作組的Bosak的看法,XML的應(yīng)用范圍可分為4大類:
(1)要求Web客戶機在兩個或多個不同的數(shù)據(jù)庫之間傳遞信息的應(yīng)用;(2)希望將Web服務(wù)器的大量處理負(fù)荷轉(zhuǎn)移給Web客戶機的應(yīng)用;(3)要求Web客戶機把同一數(shù)據(jù)以不同的表現(xiàn)方式提供給不同用戶的應(yīng)用;(4)適應(yīng)特定用戶需求的智能Web工具應(yīng)用。
電子商務(wù)屬于第一類應(yīng)用,尤其是以電子數(shù)據(jù)交換(EDI)為基礎(chǔ)的電子商務(wù)。XML賦予Web數(shù)據(jù)的結(jié)構(gòu)使其更容易添加上數(shù)字簽名,同時更容易對文檔或文檔的一部分進行加密。W3C數(shù)字簽名倡議從事的正是XML的安全和認(rèn)證研究。在要求自動化和信息重復(fù)使用的其他應(yīng)用方面,XML也將對HTML有所補充。將來不管什么時候,從HTML向XML的過渡將是順暢的,不會給用戶帶來任何不便。