XML是一個精簡的SGML,它將SGML的豐富功能與HTML的易用性結合到Web的用中。XML保留了SGML的可擴展功能,這使XML從根本上有別於HTML。XML要比HTML強大得多,它不再是固定的標記,而是允許定義數量不限的標記來描述文檔中的資料,允許嵌套的信息結構。HTML只是Web顯示數據的通用方法,而XML提供了一個直接處理 Web 數據的通用方法。Html著重描述Web頁面的顯示格式,而XML著重描述的是Web頁面的內容。讓我們先來看一看用XML描述天氣預報的實例:
<weatherreport>
<date>March 25, 1998</date>
<time>08:00</time>
<area>
<city>Seattle</city>
<state>WA</state>
<region>West Coast</region>
<country>USA</country>
</area>
<measurements>
<skies>partly cloudy</skIEs>
<temperature>46</temperature>
<wind>
<direction>SW</direction>
<windspeed>6</windspeed>
</wind>
<hindex>51</hindex>
<humidity>87</humidity>
<visibility>10</visibility>
<uvindex>1</uvindex>
</measurements>
</weatherreport>
為了使編寫的Web頁面成為有效的XML文檔,文中每一添加的標記必須記入一個
獨立的DTD文件中。當客戶浏覽天氣預報文檔時,相關的DTD文件是隨著文檔一起下
載到客戶端,客戶浏覽器就懂得怎樣來處理它們,例如你可以從幾個天氣報告中計
算出平均溫度等,最後將結果顯示出來。
DTD文件使XML頁面能包含更多的內容,表現更復雜的形式。從實例中也可以看
出XML頁面信息是結構化的,有些與數據庫結構類似,因而更具訪問性,其檢索結
果更有針對性、更准確。
另外你也可以將URL地址定義在DTD文件中,當Web主頁地址發生變化時,你只
需改動DTD文件中的定義即可,而不必一一在Html文檔中改變URL地址,從而使Web
的維護更方便,用戶也不會遇到URL地址找不到的信息,這樣一來,Web的應用更穩
定。
並不是所有的DTD文件都要下載到客戶端,已經制訂成為標准的協議,例如在
後面第六點中提到的化學標記語言CML、數學標記語言MML等是不需要DTD文件的。
除了DTD外,XML中還包括可擴展格式語言XSL(Extensible Style Language)
和可擴展鏈接語言XLL(Extensible Linking Language)。
XSL用於將XML數據翻譯為Html或其他格式的語言。XSL提供了一種疊式頁面
CSS的功能,使開發者構造出具有表達層結構的Web頁面來,以有別於XML的數據結
構。XSL也能和Html一起構造疊式頁面。XSL可以解釋數量不限的標記,它使Web的
版面更豐富多彩,例如動態的文本、跑馬式的文字。此外,XSL還處理多國文字、
雙字節的漢字顯示、網格的各種各樣的處理等。
XLL是XML的鏈接語言,它與Html的鏈接相似,但功能更強大。XLL支持可擴展
的鏈接和多方向的鏈接。它打破了Html只支持超級文本概念下最簡單的鏈接限制,
能支持獨立於地址的域名、雙向鏈路、環路、多個源的集合鏈接等。XLL鏈接可不
受文檔制約,完全按用戶要求來指定和管理。
為了使XML易學易用,XML精簡了一大片SGML難得用一次的功能。正如幾十萬漢
字中常用的只不過八千,SGML常用的部分只占20%,XML拋棄了SGML中不常用的部
分,使它一下就精簡了80%。這樣一來,XML的語法說明書只有30頁,而SGML卻有
500頁。
XML設計中也考慮了它的易用性,易用性來自兩個方面:一方面用戶編寫Web頁
面方便,另一方面設計人員實現XML浏覽器也不太困難。
總之,XML使用一個簡單而有靈活的標准格式,為基於Web的應用提供了一個描
述數據和交換數據的有效手段。Html描述了顯示全球數據的通用方法,而XML提供
了直接處理全球數據的通用方法。
目前的主要XML技術
XML 與 命名空間
文檔類型定義DTD
XPath
XPointer、XInclude、XML Base
XSL Transformations
SAX
DOM
XML Schema
SOAP
支持XML的公司和它們的開發工具
盡管XML還處在開發階段,其標准正在由W3C組織制定,但是已經有許多公司表
示全力支持XML,並開發了不少XML工具。Adobe公司的FrameMaker可以用來書寫
XML文檔。Microsoft公司推出的IE 4.0已經可以顯示、處理和編輯XML文檔,
Microsoft公司作出承諾,要在下一個版本的Office 軟件如MS Word、Excel中支持
XML。Netscape、Sun公司也不甘寂寞,紛紛表示要在他們的Web工具中支持XML。除
了這些著名的公司有所行動外,其他小公司也把XML 作為一種商機,紛紛投入到
XML的開發工作中。例如ArborText 公司的Cedar項目旨在開發XSL;ArborText公司
和Microsoft公司一起向W3C提出了XSL的標准草案;Grif公司的Symposia Doc+則
是一個編輯XML文檔的可見即可得的工具。此外還有Copsol公司的XML開發工具,
Norbert公司的XML句法分析器,Jade公司的XSL工具包以及支持客戶/服務機應用的
SerucIE 98等。
XML展望
任何一項新技術的產生都是有其需求背景的,XML的誕生是在Html遇到不可克
服的困難之後。近年來Html在許多復雜的Web應用中遇到了問題,要徹底解決這些
問題,必須用功能強大的XML來替代Html作為Web頁面的書寫工具。XML有利於信息
的表達和結構化組織,從而使數據搜索更有效;XML可以使用URL別名使 Web的維護
更方便,也使Web的應用更穩定;XML可以使用數字簽名使Web的應用更廣闊拓展到
安全保密領域。可以認為未來的Web書寫工具必定是XML。而XML的廣泛使用必然能
推動Web不斷發展,從而開創Web應用的新時代。
Web的應用將隨著XML的使用而更精彩,以下是可以預見的XML的幾種應用。
XML/EDI電子數據交換
EDI(Electronic Data Interchange)是用電子技術代替基於紙張的操作手段,
用於公司之間的單據交換。XML的豐富的格式語言可用來描述不同類型的單據,例
如信用證、貸款申請表、保險單、索賠單以及各種發票等。結構化的XML文檔送至
Web的數據可以被加密,並且很容易附加上數字簽名。XML的安全保密措施可在EDI
的應用中充分顯示它的魅力,XML有希望推動EDI的大規模的應用。
化學標記語言CML和數學標記語言Math ML
CML(chamical Markup Language)和Math ML(Mathematical Markup
Language)是XML應用於描述化學和數學公式的標記語言。CML可描述分子與晶體結
構、化合物的光譜結構等。而Math ML則是數學家的福音,自Web問世以來,數學家
們第一次可以使用Math ML將數學公式精確地顯示在浏覽器上。
開放式軟件描述格式OSD
和EDI的命運相仿,軟件包的上網發行一直處於試行階段。OSD(Open Software
Descriptipon)是XML的一組用來描述各種軟件產品的標記集,可以詳細說明軟件
的規格、使用說明以及可運行平台等。
通道定義格式CDF
通道定義格式CDF(Channel definition format)是Microsoft在IE 4.0浏覽器
中使用的XML數據格式, 用於描述活動通道的內容和桌面部件,指明通道的信息及
其更新情況。CDF 使不同平台的互操作成為可能,使Web發布者可以控制推(push)
技術。專用的推技術將不再影響不同推技術的互操作性,這樣一來,從互不兼容的
平台上可以獲得相同的Web內容。
開放式財務交換OFX
OFX(Open Financial Exchange)也是XML的一種標記集,用於描述會計事務所
與客戶之間的業務往來。使用OFX,客戶與會計事務所之間可以直接交換財務數據
,包括電子銀行和支付協議等說明文件。
為了推動XML的使用,W3C已經批准了XML標准1.0版本,相信XML 10的頒布會
帶動大批高級的Web應用,用戶必須從現在起開始考慮用XML來書寫Web頁面。但是
XML的大量使用並不意味著Html會馬上消亡。習慣的勢力是強大的,正如Cobol語言
在很長的一段時間裡沒有退出歷史舞台一樣,由於現存的大量的Web頁面都是用
HTML書寫的,Html決不會輕易退出使用。可以預計,在未來的5年內,XML將和
Html攜手並肩共同使用在Web應用的不同領域中。