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