簡(jiǎn)介 可擴(kuò)展標(biāo)記語(yǔ)言XML是一種元標(biāo)記語(yǔ)言,它使用簡(jiǎn)單靈活的標(biāo)準(zhǔn)格式,為基于Web的應(yīng)用提供了一個(gè)描述數(shù)據(jù)和交換數(shù)據(jù)的有效手段. Sommaire 前言 前言 網(wǎng)絡(luò)以前所未有的速度發(fā)展,成為與報(bào)紙,廣播,電視相比肩的第四媒體. 它需要更完整的語(yǔ)言表達(dá)網(wǎng)絡(luò)內(nèi)容的內(nèi)涵. 人們?cè)絹?lái)越發(fā)現(xiàn)HTML這種語(yǔ)言已經(jīng)遠(yuǎn)遠(yuǎn)不能滿(mǎn)足網(wǎng)絡(luò)潛在應(yīng)用能力的需要. "可擴(kuò)展性標(biāo)識(shí)語(yǔ)言"XML的出現(xiàn),把網(wǎng)絡(luò)表達(dá)語(yǔ)言集合推進(jìn)了一大步. 下面我們就來(lái)詳細(xì)了解一下這一全新的標(biāo)識(shí)語(yǔ)言.. 1. 何謂標(biāo)識(shí) SGML,HTML,XML都是標(biāo)識(shí)語(yǔ)言: SGML(Standard Generalized Markup Language)標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言 最早,標(biāo)識(shí)是文件在排版的時(shí)候,用來(lái)指示文字如何編排的指令.標(biāo)識(shí)并不處理文件的內(nèi)容,主要用來(lái)處理文件世界的呈現(xiàn)外觀,這類(lèi)的標(biāo)識(shí)稱(chēng)為程序性標(biāo)識(shí)(Procedural Markup). 一般而言,程序性標(biāo)識(shí)的作用都只針對(duì)單一文件. 另一類(lèi)標(biāo)識(shí)稱(chēng)為描述性標(biāo)識(shí)(Descriptive Markup),也稱(chēng)為通用標(biāo)識(shí).所描述的是文件的內(nèi)容(content)或結(jié)構(gòu)(structure),而不是文件的呈現(xiàn)外觀.描述文件結(jié)構(gòu)的凡是以標(biāo)識(shí)指定結(jié)構(gòu)中的元素(elements) XML,SGML都是典型的通用標(biāo)識(shí)語(yǔ)言,HTML就比較特殊了,HTML的標(biāo)簽集(tag set)中的大部分都是用來(lái)設(shè)定文件在WEB上的呈現(xiàn)外觀,少部分描述文件的結(jié)構(gòu).(如:head, title, body) 由于HTML是SGML的一種應(yīng)用,所以HTML并非程序性標(biāo)識(shí)語(yǔ)言,而是以描述性標(biāo)識(shí)的方式來(lái)控制文件的呈現(xiàn)外觀. . HTML 2.1. HTML ”HTML (超文本鏈接標(biāo)示語(yǔ)言)是我們的數(shù)據(jù)類(lèi)型” __比爾.蓋茨(1996.2) 這句話(huà)預(yù)示了戶(hù)聯(lián)網(wǎng)無(wú)可限量的發(fā)展前景. 無(wú)論是公司,政府機(jī)構(gòu),還是個(gè)人,網(wǎng)絡(luò)和它最初用以表達(dá)信息的方法HTML都獲得了圓滿(mǎn)的成功,HTML以簡(jiǎn)單易學(xué),、靈活通用的特性,,使人們發(fā)布、檢索,、交流信息都變得非常簡(jiǎn)單,,從而使Web成了最大的環(huán)球信息資源庫(kù),。 這樣看來(lái)HTML可以解決絕大部分問(wèn)題了,但是,一些獨(dú)具慧眼的人卻已經(jīng)認(rèn)識(shí)到有必要重新發(fā)展一種新的語(yǔ)言,即XML. 2.2.HTML的缺點(diǎn) “HTML只說(shuō)明數(shù)據(jù)看起來(lái)應(yīng)該是什么樣,而XML則說(shuō)明數(shù)據(jù)是什么意思.” 首先,HTML存在很大的局限性, 由于標(biāo)準(zhǔn)的標(biāo)記已經(jīng)由W 其次,,HTML的另一個(gè)問(wèn)題就是它的標(biāo)記的集合是固定的,用戶(hù)不能增加自己的有意義的標(biāo)記,。而且各大瀏覽器的規(guī)格不盡相同,,要使我們用HTML做的網(wǎng)頁(yè)能夠被所有瀏覽器正常顯示,我們只能夠使用W 3. XML的誕生 XML,extensible markup language(可擴(kuò)展標(biāo)識(shí)語(yǔ)言),是當(dāng)代最熱門(mén)的網(wǎng)絡(luò)技術(shù)之一,被稱(chēng)為”第二代web語(yǔ)言”,”下一代網(wǎng)絡(luò)應(yīng)用的基石.”自從它被提出來(lái),幾乎得到了業(yè)界所有大公司的支持,絲毫不遜于當(dāng)年HTML被提出來(lái)的熱度. XML是1986年國(guó)際標(biāo)準(zhǔn)組織(ISO)公布的一個(gè)名為”標(biāo)準(zhǔn)通用標(biāo)識(shí)語(yǔ)言”(standard general ized markup language,sgml)的子集.它是由成立于1994年10月的W 4.HTML于XML比較 與HTML相比,XML具有以下幾點(diǎn)技術(shù)優(yōu)勢(shì):
1.XML同HTML都來(lái)自SGML. 5.XML的構(gòu)成 XML主要有3個(gè)組成元素:Schema(模式),、XSL(可擴(kuò)展樣式語(yǔ)言)和XLL(可擴(kuò)展鏈接語(yǔ)言) Schema規(guī)定了XML文件的邏輯結(jié)構(gòu),定義了XML文件中的元素,、元素的屬性以及元素和元素屬性之間的聯(lián)系,它可以幫助XML的分析程序校驗(yàn)XML文件標(biāo)記的合法性;XSL是用于規(guī)定XML文檔樣式的語(yǔ)言,它能在客戶(hù)端使Web瀏覽器改變文檔的表示法,從而不需要再與服務(wù)器進(jìn)行交互通信;XLL將進(jìn)一步擴(kuò)展目前Web上已有的簡(jiǎn)單鏈接。 由于XML具有許多HTML所不可比擬的優(yōu)點(diǎn),許多公司和組織都提供了對(duì)XML的支持,。如W3C開(kāi)發(fā)的PICS(theplatformforInternetcontentselection,Internet內(nèi)容挑選平臺(tái))和RDF(resourcedescriptionframework,資源描述框架),、Microsoft的CDF(channeldefinitionformat,頻道定義格式)、Netscape的MCF(metacontentframework,元內(nèi)容框架)等,。 6.顯示 單獨(dú)實(shí)用XML不能顯示頁(yè)面,因?yàn)?span lang=EN-US>XML是將數(shù)據(jù)和格式分離的, XML本身不知道如何來(lái)顯示,必須有輔助文件來(lái)幫助實(shí)現(xiàn).比如CSS或者XSL. (XML取消了所有標(biāo)識(shí),包括font, color, p等風(fēng)格樣式定義標(biāo)識(shí),因此XML全部是采用類(lèi)似DHTML中CSS的方法來(lái)定義文檔風(fēng)格樣式.), XML中用來(lái)設(shè)定顯示風(fēng)格樣式的文件類(lèi)型有: 6.1.XSL XSL是將來(lái)設(shè)計(jì)XML文檔顯示樣式的主要文件類(lèi)型.它本身也是基于XML語(yǔ)言的.使用XSL,可以靈活的設(shè)置文檔顯示樣式,文檔將自動(dòng)適應(yīng)任何瀏覽器和PDA(掌上電腦.) 6.2.CSS CSS,全稱(chēng)是Cascading Style Sheets, 層疊樣式表,是目前用來(lái)在瀏覽器上顯示XML文檔的主要方法. 6.3.Behaviors Behaviors現(xiàn)在還沒(méi)有稱(chēng)為標(biāo)準(zhǔn),它是微軟的IE瀏覽器特有的功能,用它可以對(duì)XML標(biāo)識(shí)設(shè)定一些有趣的動(dòng)作. 7.XML的獨(dú)特之處 7.1.更有意義的搜索 數(shù)據(jù)可被XML唯一的標(biāo)識(shí),。沒(méi)有XML,搜索軟件必須了解每個(gè)數(shù)據(jù)庫(kù)是如何構(gòu)建的,。這實(shí)際上是不可能的,,因?yàn)槊總€(gè)數(shù)據(jù)庫(kù)描述數(shù)據(jù)都是不同的。例如,有了XML,,書(shū)就可以很容易以標(biāo)準(zhǔn)的方式按照作者,、標(biāo)題、ISBN序號(hào)或其他的標(biāo)準(zhǔn)分類(lèi)。搜索書(shū)就變得十分方便,。 7.2. 開(kāi)發(fā)靈活的Web應(yīng)用軟件 數(shù)據(jù)一旦建立,,XML能被發(fā)送到其他應(yīng)用軟件、對(duì)象或者中間層服務(wù)器做進(jìn)一步地處理,?;蛘咚梢园l(fā)送到桌面用瀏覽器瀏覽。XML和HTML,、腳本、公共對(duì)象模式一起為靈活的三層Web應(yīng)用軟件的開(kāi)發(fā)提供了所需的技術(shù),。 7.3. 不同來(lái)源數(shù)據(jù)的集成 現(xiàn)在搜索多樣的不兼容的數(shù)據(jù)庫(kù)實(shí)際上是不可能的,。XML能夠使不同來(lái)源的結(jié)構(gòu)化的數(shù)據(jù)很容易的結(jié)合在一起。軟件代理商可以在中間層的服務(wù)器上對(duì)從后端數(shù)據(jù)庫(kù)和其他應(yīng)用處來(lái)的數(shù)據(jù)進(jìn)行集成,。然后,,數(shù)據(jù)就能被發(fā)送到客戶(hù)或其他服務(wù)器做進(jìn)一步的集合、處理和分發(fā),。 7.4. 多種應(yīng)用得到的數(shù)據(jù) 擴(kuò)展性和靈活性允許它描述不同種類(lèi)應(yīng)用軟件中的數(shù)據(jù),,從描述搜集的Web頁(yè)到數(shù)據(jù)記錄。同時(shí),,由于基于XML的數(shù)據(jù)是自我描述的,,數(shù)據(jù)不需要有內(nèi)部描述就能被交換和處理。 7.5. 本地計(jì)算和處理 XML格式的數(shù)據(jù)發(fā)送給客戶(hù)后,,客戶(hù)可以用應(yīng)用軟件解析數(shù)據(jù)并對(duì)數(shù)據(jù)進(jìn)行編輯和處理,。使用者可以用不同的方法處理數(shù)據(jù),而不僅僅是顯示它,。XML文檔對(duì)象模式(DOM)允許用腳本或其他編程語(yǔ)言處理數(shù)據(jù),。數(shù)據(jù)計(jì)算不需要回到服務(wù)器就能進(jìn)行。分離使用者觀看數(shù)據(jù)的界面,,使用簡(jiǎn)單靈活開(kāi)放的格式,,可以給Web創(chuàng)建功能強(qiáng)大的應(yīng)用軟件,這些軟件原來(lái)只能建立在高端數(shù)據(jù)庫(kù)上,。 7.6. 數(shù)據(jù)的多樣顯示 數(shù)據(jù)發(fā)到桌面后,,能夠用多種方式顯示。通過(guò)以簡(jiǎn)單開(kāi)放擴(kuò)展的方式描述結(jié)果化的數(shù)據(jù),,XML補(bǔ)充了HTML,,被廣泛的用來(lái)描述使用者界面。HTML描述數(shù)據(jù)的外觀,,而XML描述數(shù)據(jù)本身,。由于數(shù)據(jù)顯示與內(nèi)容分開(kāi),XML定義的數(shù)據(jù)允許指定不同的顯示方式,,使數(shù)據(jù)更合理地表現(xiàn)出來(lái),。本地的數(shù)據(jù)能夠以客戶(hù)配置,、使用者選擇或其他標(biāo)準(zhǔn)決定的方式動(dòng)態(tài)地表現(xiàn)出來(lái)。CSS和XSL為數(shù)據(jù)的顯示提供了公布的機(jī)制,。 7.7. 粒狀的更新 通過(guò)XML,,數(shù)據(jù)可以粒狀的更新。每當(dāng)一部分?jǐn)?shù)據(jù)變化后,,不需要重發(fā)整個(gè)結(jié)構(gòu)化的數(shù)據(jù),。變化的元素必須從服務(wù)器發(fā)送給客戶(hù),變化的數(shù)據(jù)不需要刷新整個(gè)使用者的界面就能夠顯示出來(lái),。目前,,只要一條數(shù)據(jù)變化了,整一頁(yè)都必須重建,。這嚴(yán)重限制了服務(wù)器的升級(jí)性能,。XML也允許加進(jìn)其他數(shù)據(jù),比如預(yù)測(cè)的溫度,。加入的信息能夠流入存在的頁(yè)面,,不需要瀏覽器發(fā)一個(gè)新的頁(yè)面。 7.8. 在Web上發(fā)布數(shù)據(jù) 由于XML是一個(gè)開(kāi)放的基于文本的格式,,它可以和HTML一樣使用HTTP進(jìn)行傳送,,不需要對(duì)現(xiàn)存的網(wǎng)絡(luò)進(jìn)行變化。 7.9. 升級(jí)性 由于XML徹底把標(biāo)識(shí)的概念同顯示分開(kāi),,處理者能夠在結(jié)構(gòu)化的數(shù)據(jù)中嵌套程序化的描述以表明如何顯示數(shù)據(jù),。這是令人難以相信的強(qiáng)大的機(jī)制,使得客戶(hù)計(jì)算機(jī)同使用者間的交互作用盡可能的減少了,,同時(shí)減少了服務(wù)器的數(shù)據(jù)交換量和瀏覽器的響應(yīng)時(shí)間,。另外,XML使個(gè)人的數(shù)據(jù)只能通過(guò)更新的布告發(fā)生變化,,減少了服務(wù)器的工作量,,大大增強(qiáng)了服務(wù)器的升級(jí)性能。 7.10. 壓縮性 XML壓縮性能很好,,因?yàn)橛糜诿枋鰯?shù)據(jù)結(jié)構(gòu)的標(biāo)簽可以重復(fù)使用,。XML數(shù)據(jù)是否要壓縮要根據(jù)應(yīng)用來(lái)定,還取決于服務(wù)器與客戶(hù)間數(shù)據(jù)的傳遞量,。XML能夠使用HTTP1.1中的壓縮標(biāo)準(zhǔn),。 7.11. 開(kāi)放的標(biāo)準(zhǔn) XML基于的標(biāo)準(zhǔn)是為Web進(jìn)行過(guò)優(yōu)化的。微軟和其他一些公司以及W 7.12. 微軟產(chǎn)品的支持 微軟IE4.0支持通用的XML解析器,、XML對(duì)象模式和XML數(shù)據(jù)源對(duì)象,。IE5和Office2000支持許多添加的XML特性和技術(shù)。 8.XML的應(yīng)用 正如前面所說(shuō),XML是SGML的簡(jiǎn)化,因此它也屬于元語(yǔ)言.可以由使用者自行定義,進(jìn)而殘生出完全符合使用者需求的應(yīng)用語(yǔ)言.如應(yīng)用于數(shù)學(xué)方面的MATHML.應(yīng)用于向量圖的SVG,應(yīng)用于化學(xué)方面的CML,應(yīng)用于描述網(wǎng)絡(luò)資源的RDF等. 8.1. XML/EDI電子數(shù)據(jù)交換 EDI(Electronic Data Interchange)是用電子技術(shù)代替基于紙張的操作手段,,用于公司之間的單據(jù)交換,。XML的豐富的格式語(yǔ)言可用來(lái)描述不同類(lèi)型的單據(jù),例如信用證,、貸款申請(qǐng)表,、保險(xiǎn)單、索賠單以及各種發(fā)票等,。結(jié)構(gòu)化的XML文檔送至Web的數(shù)據(jù)可以被加密,,并且很容易附加上數(shù)字簽名。XML的安全保密措施可在EDI的應(yīng)用中充分顯示它的魅力,,XML有希望推動(dòng)EDI的大規(guī)模的應(yīng)用。 8.2.化學(xué)標(biāo)識(shí)語(yǔ)言CML和數(shù)學(xué)標(biāo)識(shí)語(yǔ)言MATH ML CML(chamical Markup Language)和Math ML(Mathematical Markup Language)是XML應(yīng)用于描述化學(xué)和數(shù)學(xué)公式的標(biāo)記語(yǔ)言,。CML可描述分子與晶體結(jié)構(gòu),、化合物的光譜結(jié)構(gòu)等。而Math ML則是數(shù)學(xué)家的福音,,自Web問(wèn)世以來(lái),,數(shù)學(xué)家們第一次可以使用Math ML將數(shù)學(xué)公式精確地顯示在瀏覽器上。 8.3.開(kāi)放式軟件描述格式OSD 和EDI的命運(yùn)相仿,,軟件包的上網(wǎng)發(fā)行一直處于試行階段,。OSD(Open Software Descriptipon)是XML的一組用來(lái)描述各種軟件產(chǎn)品的標(biāo)記集,可以詳細(xì)說(shuō)明軟件的規(guī)格,、使用說(shuō)明以及可運(yùn)行平臺(tái)等,。 8.4.通道定義格式CDF 通道定義格式CDF(Channel definition format)是Microsoft在IE 4.0瀏覽器中使用的XML數(shù)據(jù)格式, 用于描述活動(dòng)通道的內(nèi)容和桌面部件,,指明通道的信息及其更新情況,。CDF 使不同平臺(tái)的互操作成為可能,使Web發(fā)布者可以控制推(push)技術(shù),。專(zhuān)用的推技術(shù)將不再影響不同推技術(shù)的互操作性,,這樣一來(lái),從互不兼容的平臺(tái)上可以獲得相同的Web內(nèi)容,。 8.5.開(kāi)放式財(cái)務(wù)交換OFX OFX(Open Financial Exchange)也是XML的一種標(biāo)記集,,用于描述會(huì)計(jì)事務(wù)所與客戶(hù)之間的業(yè)務(wù)往來(lái)。使用OFX,,客戶(hù)與會(huì)計(jì)事務(wù)所之間可以直接交換財(cái)務(wù)數(shù)據(jù),,包括電子銀行和支付協(xié)議等說(shuō)明文件。 9.開(kāi)發(fā)工具 開(kāi)發(fā)XML有許多工具可以使用 ,以下為幾種比較常見(jiàn)的工具 1) Notepad 最直接,最簡(jiǎn)單的文本編輯工具,在Windows附件中就可找到. 2) Microsoft XML Notepad 微軟專(zhuān)門(mén)為設(shè)計(jì)XML文檔而提供的編輯軟件,可以借助它驗(yàn)證XML文檔的有效性.http://msdn.microsoft.com/xml/NOTEPAD/intro.asp 3) Visual InterDev 該軟件是用來(lái)開(kāi)發(fā)Web應(yīng)用程序的,不僅局限于XML,還可以開(kāi)發(fā)ASP.HTML.XSL樣式單等等. 4) Micosoft XML Tree Viewer 利用這個(gè)軟件可以把XML文檔的內(nèi)容用樹(shù)的結(jié)構(gòu)形式顯示出來(lái) http://msdn.microsoft.com/xml/demos/default.asp 5) Microsoft XML Validator 該軟件可以檢查XML文檔是否是格式良好的以及其有效性,并對(duì)錯(cuò)誤發(fā)出警告. http://msdn.microsoft.com/xml/demos/defaul.asp 6) Microsoft XSL Debugger 樣式單文件的復(fù)雜性使開(kāi)發(fā)人員在編寫(xiě)時(shí)容易出現(xiàn)錯(cuò)誤,這個(gè)軟件就是幫助用戶(hù)調(diào)試樣式單文件的,把復(fù)雜枯燥的調(diào)試過(guò)程用可視化界面顯示出來(lái). http://msdn.microsoft.com/xml/_archive/xsl-debugger/xsl-debugger.htm 7) WorkPerfect 一種對(duì)開(kāi)發(fā)XML和SGML提供高級(jí)支持的文字處理器,具有所見(jiàn)即所得的開(kāi)發(fā)環(huán)境,提供向?qū)?span lang=EN-US>,自動(dòng)化控件的插入和文檔的自動(dòng)生成等功能,它是一款收費(fèi)的商業(yè)產(chǎn)品,支持windows 95/98/2000和Linux平臺(tái). http://www./ 8) SixPack 為XML的解析和開(kāi)發(fā)提供簡(jiǎn)潔的界面,支持 Macintosh平臺(tái),并公開(kāi)源代碼. http://www./sixpack/info.htm 9) Xray 一種具有實(shí)時(shí)錯(cuò)誤檢查的XML編輯器.它根據(jù)DTD或者XML Schema,允許用戶(hù)創(chuàng)建格式良好的XML文檔或驗(yàn)證文檔的有效性,并且支持多文檔編輯,是一款免費(fèi)軟件 http:///xray/ |
|
來(lái)自: 非常主體 > 《技術(shù)雜談》