XML

XML是什麼?

 XML全稱為可擴展的標記語言,不過實際上它和真正意義上的標記語言還有著相當多的區別,它是一種允許用戶對自己的標記語言進行定義的源語言。簡單來說,如果HTML是一個描述系統,XML就是用來定義這個描述系統的,使用XML就可以定義出像HTML這樣的系統。

 除了XML外,還有兩種標記語言,分別是SGML(Stardard Generalized Markup Language,標準廣義標記語言)和HTML。它們都是利用各種標記使文檔規範化格式化,以便於信息的整理與交流。這些標識語言的發展過程中, SGML是最先問世的,SGML應用的前題下Web和HTML語言也應運誕生。之後人們對於Web信息交流的要求日漸複雜,HTML語言已經滿足不了這種需求,XML適時的出現了。

 SGML的主要應用範圍是在文檔中表達一些數據,它已經出現了十餘年之久。HTML和XML都是從SGML發展而來的文檔形式。它們之間都有一些共同之處,但是HTML是SGML的一個應用,而XML是SGML的一個精減的子集。SGML是一個用來定義在電子表格中如何對文件的結構和內容進行描述的國際標準(ISO-8879)。為了滿足各種不同的頁面表達需要,SGML設計得非常複雜,因此使用起來很不方便,使得其未能得到普及和大規模的應用。而 XML大約只保留了SGML中80%的功能,並且大大減少了SGML的複雜性。XML使用起來非常容易,其複雜程度大約只有SGML的20%,因此它一經推出即受到一些用戶的歡迎。

XML的特性

 XML的出現大大豐富了HTML的描述功能,它可以描述非常複雜的Web頁面。如複雜的數學公式,化學分子式等等。XML的特性主要分為4個大方面,分別是:結構化、自描述、可擴展和瀏覽器自適應。
1.結構化

 XML是一種極端標準化的語言規範。類似於SGML,XML文件利用了一個DTD(Document type definition,文件類型定義)規範,DTD規範是一個用來定義XML文件的語法、句法和數據結構的標準。DTD還可以定義在使用每一個你所聲明的元素時是必需的、可選的還是有條件的,以及可允許的屬性值的範圍是否有所限制,是否有一個缺省值,或者是否允許有空標記等。

 XML帶有一個XML語法分析器,XML語法分析器使用DTD來確定一個文件是否是規範化的,就是說它是否包括了正確定義的開始和結束標記。如果它是有效的,那麼說明它完全遵守DTD規範。這種規範不允許有任何形式的變通,即使是一個小錯誤也會導致整個文件通不過XML語法分析器的檢查。一個XML語法分析器可以通過內置的DTD,或通過使用<DOCTYPE> HTML元素外部定義的DTD,或通過使用描述邏輯規則或一個外部定義的處理指令集來自動檢查Web頁面是否完全符合DTD規範。

 這些更嚴格的數據結構的好處之一在於用戶可以很容易將文件的屬性映射到數據結構或對象分級結構中。這就使在客戶端的瀏覽器和數據庫之間來回傳輸文件變得很可靠,也使用戶可以使用結構化的XML文件作為一種中介體讓數據在兩種數據庫之間靈活地進行轉移。也就是說,人們得到了一種從文件中檢索信息的可靠方法,這也就是人們所熟悉的語法分析。另一個優點是使各種格式的XML文件都可以被機器識別。允許機器能夠識別各種格式的XML頁面就可以讓不同的站點之間自動共享不同格式的數據。使用DTD,用戶甚至可以通過一個共同的描述連接不同格式的數據。

2.自描述

 並沒有任何要求規定XML文件必須是可以自描述的,只要求是結構化的就可以,但帶有自描述可以增強Web的檢索功能。這些描述被稱作「元數據(metedata)」,它們可以包括有關一個文件的信息如安全(誰可以閱讀它)、閱讀範圍、文件內容、文件是用什麼語言寫的、作者是誰以及關於這個文件的其它任何信息。雖然HTML也有一個類似的增加元數據的功能,但是它未能很好地對交換不同元數據屬性的格式進行定義。

 元數據的存在可以大大增強Web的檢索和導航功能。通常普通的HTML完成這樣一個查詢過程是非常複雜的,但有了XML後Web頁面就可以自動完成這一系列的查詢過程。

 元數據的出現使得使用軟件代理變得更加簡單。代理這個詞在計算機方面應用得非常廣,人們對它的理解也不盡統一。這裡所描述的代理是指一個能夠從網絡上的多台機器中根據用戶的需要蒐集信息的一個有線程對象工具。通常代理都被認為是「智能的」、「可移動的」或者是「個人化的」。XML元數據允許一個代理變得更加個人化,由於它能夠訪問數據的描述,這些描述將有助於代理找到它所需要的信息。

3.可擴展性

 XML的一個中心特性就體現在它的名字中——可擴展性,也被稱為可擴展或可定製的能力。可擴展性一直是HTML的弱點,由於HTML被定義成一套固定的標籤集,人們不可能增加新的標籤而又不破壞HTML標準,但現在Web頁面需要表達的內容越來越豐富而複雜,標準HTML規定的標籤遠遠不能滿足頁面設計的需要。為瞭解決標準HTML目前的限制並且考慮到未來Web頁面發展的需要,就要求新的頁面標籤具有可擴展性,能夠創建新的標籤。在XML中,標籤是由 DTD定義的,正是它定義了在一個文件的結構中允許有什麼樣的應用,例如:瀏覽器、檢索數據庫、打印引擎等。

4.瀏覽器自適應

 如果一個XML文件是結構化的,那麼這樣的一個文件應該能夠適應各種不同的瀏覽模式。目前就有了用XML開發的為了能夠運行在移動電話的小顯示窗口上而設計的Web頁面。這種類型的文件允許使用標準的電話接口進行簡單的導航處理,如使用不同撥號鍵來表示不同輸入信息。在有必要的前提下,還可以將其作為一種將文本翻譯成可讀的語言格式的有效方法。

 XML提供的軟件功能還能夠對用戶輸入的數據進行動態的計算和顯示。人們可以將股票的價格實時地輸入到一個XML格式的表格中,這個表格就能夠動態地計算股票的贏虧情況,而這一切都不用借助瀏覽器即可完成。一些XML的專門應用開發商還在軟件方面增加了更多的功能。

 XML的自適應特性使得用戶和開發人員都得到了更大的益處。目前,頁面設計人員必須編寫HTML、HDML或具有CSS(級聯風格表單)的HTML等格式的文件才能在瀏覽器中進行顯示。如果使用了XML,Web頁面的製作和顯示將更加方便。如CSS 2就是CSS的下一個版本,它可以利用XML的表格功能來進行多欄和多維國際化顯示(用於多種不同的語言如需要從上往下閱讀或從右向左閱讀的日語)。有了這種風格機制,開發人員就可以為同樣的數據創建多種瀏覽形式,以便滿足不同地區和不同愛好的用戶需要。

應用

1.XML/EDI電子數據交換
EDI(Electronic Data Interchange)是用電子技術代替基於紙張的操作手段,主要用於公司之間的單據交換。XML豐富的格式語言可用來描述不同類型的單據,如信用證、貸款申請表、保險單、索賠單以及各種發票等。結構化的XML文檔送至Web的數據可以被加密,並且很容易附加上數字簽名。XML的安全保密措施可在EDI 的應用中充分顯示它的魅力,並有希望推動EDI的大規模應用。

2.化學標記語言CML和數學標記語言Math ML
CML(Chemical Markup Language)和Math ML(Mathematical Markup Language)是XML的兩個分支,分別應用於描述化學和數學公式的標記語言。CML可描述分子與晶體結構、化合物的光譜結構等。而Math ML的出現則為數學家帶來了福音。自Web問世以來,數學家們第一次可以將數學公式精確地顯示在瀏覽器上,而這個願望的實現主要是依靠Math ML。

3.OSD開放式軟件描述格式
軟件集合包在網上的發行一直處於試行階段。OSD(Open Software Descriptipon)是XML的一組用來描述各種軟件產品的標記集,可以詳細說明軟件的規格、使用說明以及可運行平台等。

4.CDF通道定義格式
通道定義格式CDF(Channel definition format)是Microsoft在IE 4.0瀏覽器中使用的XML數據格式並用於描述活動通道的內容和桌面部件,它主要用於指明經過通道的信息及其更新情況。CDF使不同平台的互操作成為可能,使Web發佈者可以控制推(push)技術。專用的推技術將不再影響不同推技術的互操作性,這樣一來從互不兼容的平台上可以獲得相同的Web內容。

5.OFX開放式財務交換
OFX(Open Financial Exchange)也是XML的一種標記集,專門用於描述會計事務所與客戶之間的業務往來。使用OFX,客戶與會計事務所之間可以直接交換財務數據,包括電子銀行和支付協議等說明文件。

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License