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