爲什麼使用 XML

爲什麼使用 XML


本文討論使用“可擴展的標記語言 (XML)”作爲數據的標準格式。它概述了 XML 是什麼、它產生的原因以及爲什麼它對錶示和交換數據來說是極有價值和益處的技術。

爲什麼使用 XML?

Web 使我們能夠與任何地方的任何人通訊。廣泛接受的標準(這對完全使用 Web 的潛力是至關重要的)允許 Web 在多種交互操作的技術層上通訊。一個重要層是可視化顯示和用戶界面,例如 HTML、GIF 和 JScript(TM) 之類的現有標準。這些標準允許創建一次頁面,並且在不同時間向衆多接收者顯示。

儘管可視化和用戶界面標準是必要層,但它們並不足以表示和管理數據。當前,Internet 只是文本和圖片的訪問媒體。並沒有智能搜索、數據交換、自適應表示和個人化的標準。Internet 必須超出設置信息訪問和顯示標準的限制。Internet 必須設置信息理解標準(表示數據的通用方式),以便軟件能夠更好地搜索、移動、顯示和處理上下文中隱藏的信息。由於 HTML 是一種描述如何表示 Web 頁的格式,所以 HTML 並不能完成以上處理;HTML 並不表示數據。例如,HTML 不能:

  • 向醫生提供將處方發送到藥劑師的標準方式。
  • 允許醫藥實驗室以所有接收者均能分析的格式發表統計信息。
  • 以所有接受者均能解碼和處理的表格描述電子支付。
  • 提供搜索法律圖書館中有關某一主題的所有訴訟文檔的標準方式。
  • 指定以何種方式傳送公司目錄中的信息,以便銷售人員可以脫機工作、向客戶顯示目錄、接受定單並以標準格式上載這些定單。

簡而言之,儘管 HTML 提供了用於顯示的豐富工具,但 HTML 並沒有提供任何基於標準的管理數據的方式。

正如數年前用於顯示的 HTML 標準擴展了 Internet 一樣,數據顯示標準亦將擴展 Internet。 數據標準將是商業交易、公佈個人喜愛的配置文件、自動協作和數據共享的工具。將以此格式編寫醫療記錄、製藥研究數據、半導體部件圖以及採購定單。這將開創衆多新用途,這些新用途均基於在 Web 上到處移動結構數據的標準表示,正如當前我們移動 HTML 頁一樣容易。數據標準是 XML 和 XML 擴展名。

什麼是 XML?

XML 是一種元標註語言,該語言提供一種描述結構數據的格式。這有助於更精確地聲明內容,方便跨越多種平臺的更有意義的搜索結果。此外,XML 將起用新一代的基於 Web 的數據查看和處理應用程序。

數據的結構表示

XML 提供可以廣泛執行並易於配置的數據的結構表示。XML 是 萬維網協會(W3C) 非 MS 鏈接定義的用於優化 Web 上的傳輸的 SGML 的子集,XML 確保結構數據是一致的並獨立於應用程序或供應商。由此產生的互用性正在啓動新一代的商業和電子商務 Web 應用程序。

XML 提供可以編碼各種情況(從簡單至複雜)的內容、語義和架構的數據標準,可被用於標註以下對象:

  • 普通文檔。
  • 諸如約會記錄或採購定單之類的結構記錄。
  • 具有數據和方法的對象,如 Java 對象或 ActiveX 控件的持續型表單。
  • 數據記錄,如查詢的結果集。
  • 有關 Web 站點的元內容,如“頻道定義格式 (CDF)”。
  • 圖形表示,如應用程序的用戶界面。
  • 標準架構實體和類型。
  • Web 上的信息與用戶之間的所有鏈接。

一旦該數據在客戶機桌面上,就可以在多個視圖中處理、編輯和表示它,而無需返回到服務器。由於較低的計算量和帶寬負載,所以目前的服務器更易於升級。此外,由於以 XML 格式交換數據,所以可以輕而易舉地合併來自不同來源的數據。

XML 對 Internet 和大型企業的 Intranet 環境是頗有價值的,這是由於 XML 提供使用靈活、開放、基於標準格式的互用性,並具備訪問遺留數據庫和將數據傳輸到 Web 客戶機的新方式。可以更快地生成應用程序,應用程序更易於維護,並且可以在結構數據上輕易提供多種視圖。

XML 文檔

XML 是一種基於文本的格式,在許多方面類似於 HTML,後者是專爲存儲和傳輸數據而設計的。XML 源是由 XML 元素組成的,每個 XML 元素包括一個開始標記(<title>),一個結束標記(</title>)以及兩個標記之間的信息(稱爲內容)。就象 HTML 一樣,XML 文檔保存利用標記註釋的文本。然而,與 HTML 不同的是,XML 允許無限的標記集,各標記集並不表示如何顯示,而是表示其含義。例如,可以將 XML 元素標記爲價格、訂單編號或名稱。由文檔的作者確定使用何種數據以及哪種標記名稱最合適。

很容易創建 XML 文檔。如果您熟悉 HTML,那麼您可以很快地學會採用 XML 格式進行編寫。在該示例中,利用 XML 描述天氣預報,可以用 XML 的擴展名保存該文件,如 Weather.xml。

<weather-report>
	<date>1998 年 3 月 25 日</date>
	<time>08:00</time>
	<area>
	   <city>西雅圖</city>
	   <state>華盛頓</state>
	   <region>西海岸</region>
	   <country>美國</country>
	</area>
	<measurements>
	   <skies>局部多雲</skies>
	   <temperature>46</temperature>
	   <wind>
	      <direction>西南</direction>
	      <windspeed>6</windspeed>
	   </wind>
	   <h-index>51</h-index>
	   <humidity>87</humidity>
	   <visibility>10</visibility>
	   <uv-index>1</uv-index>
	</measurements>
</weather-report>

各標記表示各數據項的含義(是否爲 <日期> 元素、<區域> 元素等等),而並不描述顯示數據的次序和形式。此數據的所有接收者均可將該文檔解碼,以便用於自己的特定目的。例如,某人可以利用該信息制定當天的計劃,而氣象研究員可以將其作爲西雅圖的歷史記錄。

可擴展的功能

您可以在 XML 中定義無限的標記集。雖然可以使用 HTML 標記以粗體或斜體的方式顯示文字,但 XML 可提供一個用於標記結構數據的框架。XML 元素可以將其關聯數據聲明爲零售價格、營業稅、書名、降雨量或其他任何需要的數據元素。隨着整個組織以及 Internet 上的其他用戶採用 XML 標記,將出現搜索和處理數據的相應能力,而不管發現該數據的應用程序如何。一旦定位了數據,就可以在網絡上傳送並以多種方式在瀏覽器中顯示,或者傳送到其他應用程序以供進一步處理和查看。

標記表示一塊數據。通常,它對應於某個表中的某個字段。然而,這並不是必要的。標記可以是一個計算列(價格乘以數量)。沒有理由認爲一個 XML 文件表示某個表中的所有數據。正像通常看到的那樣,XML 將表示包括許多表的查詢結果。只要接收應用程序能夠搞清 XML 中的數據的意思,數據是從哪裏來的以及該數據如何到達 XML 文件並不重要。

數據是從表示和處理中分離出來的

XML 的優勢在於,它保持了用戶界面和結構數據之間的分離。HTML 指定如何在瀏覽器中顯示數據,而 XML 則定義內容。在 HTML 中,使用標記告訴瀏覽器以粗體或斜體的方式顯示數據;而在 XML 中,只使用標記來描述數據,如城市名、溫度和氣壓。在 XML 中,使用諸如“擴展樣式語言 (XSL)”和“層疊樣式表 (CSS)”之類的樣式表,來表示瀏覽器中的數據。XML 把數據從表示和處理中分離出來,使您可通過應用不同的樣式表和應用程序,來按您的願望顯示和處理數據。

把數據從表示中分離出來,能夠無縫集成衆多來源的數據。可以將用戶信息、採購定單、研究結果、帳單支付、醫療記錄、目錄數據以及其他來源轉換爲中間層上的 XML,以便像 HTML 頁顯示數據一樣很容易地聯機交換數據。然後可以在 Web 上將按照 XML 編碼的數據傳送到桌面。對於大型數據庫或文檔中存儲的遺留信息無需進行更新,並且由於使用了 HTTP 在網絡上傳送 XML,所以此功能不需要更改。

使 XML 數據自描述

在 XML 中,“文檔類型定義(DTD)”可以伴隨文檔,且文檔類型定義實質上定義文檔的規則,例如哪些元素可被顯示以及元素之間的結構關係。當接收應用程序沒有傳入數據的內部描述時,DTD 將幫助驗證該數據。然而,在 XML 中,DTD 是可選的。

與 DTD 一起發送的數據稱爲有效 XML。此時,XML 語法分析程序應對照 DTD 中定義的規則校正傳入的數據,以確保該數據被正確構造。沒有與 DTD 一起發送的數據稱爲結構良好的 XML。這裏,可以使用基於 XML 的文檔實例,如以上顯示的層次結構氣象數據,可用來隱含地描述它自己。

對於有效 XML 和結構良好的 XML,XML 編碼的數據是自描述的,這是由於描述標記和數據是混合的。XML 使用開放的、靈活的格式,在任何需要交換和傳送信息的地方均可使用 XML,這使得 XML 功能更加強大。

例如,可以使用 XML 描述有關 HTML 頁的信息,或使用 XML 描述商業規則中包含的數據或電子商務交易中的對象,如發票、採購定單和定貨單。由於 XML 是與 HTML 分離的,所以可以將 XML 添加到 HTML 文檔中。W3C 定義了一種格式,根據該格式,可以將基於 XML 的數據或 XML 數據島封裝到 HTML 頁中。通過將 XML 數據島嵌入到 HTML 頁中,並使用 XML 中包含的語義信息,就可以根據傳送的數據生成多個視圖。此外,還可以使用 XML 強制應用程序,如分佈式打印、數據庫搜索及其他程序。

架構

架構是 XML 文檔規則的正式規格,即元素名稱,架構表示文檔中允許哪些元素以及允許哪些組合。如 XML 數據工作組(英文)中定義的新架構語言,非 MS 鏈接符合 W3C 的“XML 數據和文檔內容說明 (DCD)”建議提供了和 DTD 一樣的功能。但是,這些架構是可擴展的,所以開發人員可用附加的信息(諸如那些數據類型、繼承和演示文稿規則)來擴展它們。這使得這些新的架構語言在功能上比 DTD 強大得多。

除了 XML 數據和 DCD 外,Microsoft 和其他公司還建議用 XML 自身來表達 XML 文檔架構的詞彙。這使 XML 數據能夠描述它自己的結構。表達 XML 內部的架構給 XML 格式添加了巨大的能量,因爲它使檢查某些數據的軟件瞭解它的結構成爲可能,而不用任何事先內建數據結構的描述。

使用架構,作者正好可以定義在文檔中允許什麼樣的元素名,以及在每個元素中允許什麼樣的子元素、屬性和關係。作者可從其他架構中引入片斷,以及通過繼承來擴展類型。於是,在保留了詞彙樹結構簡單性的同時,還允許元素間的複雜關係。

作者可以發明他們自己的架構,或者共享別的作者創建的架構。讀者可以檢查架構參考以檢驗已經收到的文檔的類型是否正確。他們還可以使用架構中的信息來自動檢驗文檔的結構。

想使用 XML 的公司,需要一個尋找關於其他公司和應用程序支持的架構、文檔和公司進程的信息的簡單辦法。想象一下消費者要付出的巨大代價,相當於每一家公司都要定義它自己的發佈信息的方法。即使是 Web, 建立和維護 Web 站點的費用也超出了某些公司的能力。有無數的公司可以發佈他們的信息,但是缺少如何用安全的、可控的方式來發布這些信息的標準,這勢必導致成千上萬種不同的執行方法、導航方式和內容深度。允許這種“混亂”狀態氾濫的成本負擔將波及消費者。

Microsoft 已經選擇了通過創建和管理 www.biztalk.org(英文),來最大限度克服此問題。非 MS 鏈接該站點將成長爲定位、管理、學習和發佈使用在成千上萬應用程序中的 XML、XSL 和信息模型的大門。架構的全功能聯機倉庫計劃在 1999 年初秋交付使用。

開放式標準

XML 是基於經過驗證的、針對 Web 進行優化的技術標準。Microsoft 正在與其他大公司和 W3C 研究小組共同努力,確保對工作在多系統和多瀏覽器上的開發人員、作者和用戶的互用性和支持,並不斷加強 XML 標準。

XML 是由下列相關標準組成:

  • 可擴展的標記語言(XML)(英文) 非 MS 鏈接是一個“建議”,即 W3C 審批進程的最後階段。這就是說,該標準是穩定的,並且受到 Web 和工具開發人員的熱烈歡迎。
  • XML 命名空間(英文) 非 MS 鏈接是一個“建議”,它描述了命名空間的語法並支持命名空間認可的 XML 分析程序。
  • 文檔對象模型 (DOM) 1 級(英文) 非 MS 鏈接是一個“建議”,它提供了有計劃地訪問腳本中結構化數據的標準,使開發人員能夠與基於 XML 數據的計算機進行相容的交互。
  • 可擴展的樣式表語言 (XSL)(英文) 非 MS 鏈接是當前的工作草稿。XSL 由兩個模塊組成:“XSL 轉換語言”和“XSL 格式化對象”。轉換語言可用於爲顯示而轉換 XML。因爲 XSL 的兩個部分是模塊,所以轉換語言可獨立應用於通用目的的轉換,包括將 XML 轉換爲格式更好的 HTML。CSS 可用於簡單結構的 XML 數據,但是隻能以接收的次序顯示信息。
  • XML 鏈接語言 (XLL)(英文) 非 MS 鏈接和它的伴侶 XML 指針語言 (XPointer)(英文) 非 MS 鏈接是當前的工作草稿。XLL 是 XML 鏈接語言,它提供了 XML 中的鏈接,類似 HTML 中的鏈接,然而功能更強。用 XLL,鏈接可以是多向的,而且鏈接可存在於對象級,不是僅在頁面級。Internet Explorer 5 不支持 XLL。

XML 結構化架構,諸如 XML 數據註釋(英文) 非 MS 鏈接XML 的文檔內容描述 (DCD)(英文) 中描述的那些非 MS 鏈接是 W3C XML 數據工作組(英文) 非 MS 鏈接的課題。

從 XML 中受益

XML 給基於 Web 的應用程序帶來了強大的功能和靈活性,它爲開發人員和用戶提供了許多引人注目的優點:

  • 更有意義的搜索
  • 開發靈活的 Web 應用程序
    • 不同來源的數據集成
    • 本地的數據計算和操作
    • 多個數據視圖
    • 粒狀更新

更有意義的搜索

數據可使用 XML 來作唯一標記,潛在地允許客戶指定 Winston Churchill 所著的書,而不是描寫 Winston Churchill 的書。所不同的是,使用現在的方法來搜索,可能找出混在一起的兩種書。不使用 XML,則需要搜索應用程序以瞭解每個數據庫的架構,此架構描述了該數據庫是如何構造的。事實上這是不可能的,因爲每個數據庫描述它的數據的方式不同。而使用 XML,書很容易使用一種標準的方法,按作者、書名、國際標準書號或其他準則分類。然後,代理程序再使用一致的方法,在被標識的書店站點上搜索關於 Winston Churchill 的書。

靈活的 Web 應用程序的開發

找到數據之後,可將 XML 交給其他應用程序、對象和中間層服務器作下一步處理,或者送至桌面,在瀏覽器中查看。XML,連同用於顯示的 HTML、用於邏輯的腳本以及用於與數據的交互和顯示的一般對象模型一起,爲靈活的三層 Web 應用程序開發提供了所需的技術。

不同來源的數據集成

搜索多個、不兼容的數據庫的能力,至今尚屬不可能。XML 啓用了容易結合的不同來源的結構化數據。軟件代理可用於在中間層服務器上,集成來自後端數據庫和其他應用程序的數據。這數據再遞交給客戶機或其他服務器,作下一步的聚合、處理和分佈。

XML 的可擴展性和靈活性,使它能夠描述各種類型的應用程序中包含的數據,這些應用從描述 Web 頁面的集合到數據記錄,應有盡有。此外,由於基於 XML 的數據是自描述的,不需要內建的傳入數據的描述,便能交換和處理數據。

本地計算和操作

在 XML 格式的數據被遞交給客戶機之後,該數據可以使用客戶機應用程序執行的計算進行剖析,並在本地進行編輯和操作。用戶不僅僅可以顯示數據,還可使用各種方法操作數據。“XML 文檔對象模型 (DOM)”還允許使用腳本或其他編程語言操作數據。省略了和服務器之間的數據傳輸,便可進行數據計算。將查看數據的用戶界面和數據本身分離,使得從前只能在高端數據庫上找到的功能強大的應用程序,可以自然地使用簡單、靈活、開放的格式,爲 Web 而創建。

多個數據視圖

數據被傳遞到桌面之後,可使用不同的方法查看。通過使用簡單、開放和可擴展的方式描述結構化數據,XML 補充了廣泛用於描述用戶界面的 HTML。另外,HTML 描述了數據的外觀,而 XML 則描述了數據本身。由於現在顯示與數據分離了,使用 XML 定義的數據可以指定多個不同的視圖,使數據得以更好地顯示。可以根據客戶機配置、用戶喜好和其他準則決定本地數據的顯示方式。CSS 和 XSL 提供了描述特定數據視圖的說明性機制。

粒狀更新

數據可以使用 XML 粒狀更新,每當部分數據被更改後,不需要再發送一個完整的結構化數據集。只有更改了的元素才從服務器發送到客戶機上,而且用不着刷新整個用戶界面就可以顯示更改了的數據。現在,即使視圖保持不變而只更改了一個數據項,整個頁面也必須重建。這嚴重限制了服務器的可縮放性。

同樣,XML 允許添加其他數據,如預報的最高和最低溫度、預期的降雨量和概率(按百分比)。此附加的信息將流入用戶的現有視圖,而不使用瀏覽器發送新的視圖。如果還需要其他信息(如大氣壓),不用重建便可以發送。

前景

作爲表達結構化數據的行業標準,XML 向組織、軟件開發人員、Web 站點和最終用戶提供了許多優點。隨着重要市場(如高級數據庫搜索、網上銀行、醫藥、法律、電子商務和其他領域)的更爲高級的市場數據格式被創建,這種機會將進一步增加。當站點不但要查看數據,而且要分配數據時,正是良機。

當前,客戶服務正從呼叫中心和物理位置移向 Web 站點,因此將受益於 XML 的強大功能。其次,因爲大多數業務應用程序涉及數據和數據庫記錄的傳輸,如訂貨單、發票、客戶信息、約會、地圖等等,XML 將在 Internet 上執行大量業務應用程序,從而大大改變最終用戶的可能發生的事情。此外,Web 站點上的信息,不管是存在文檔中,還是在數據庫中,都可以使用基於 XML 的、面向 intranet 的詞彙來標記。這些詞彙,對需要在客戶和供應商之間交換信息的中小型公司來說,也很有幫助。

一個重要的、尚待開發的市場,就是便於最終用戶建造自己的協作 Web 站點的開發工具,包括從遺留數據庫信息和現存的用戶界面生成 XML 數據的工具。此外,還應開發描述公文夾或其他數據的標準架構,例如,它應該能使用排版、圖表和 Excel 等電子表格的其他功能。描述從遺留數據庫生成的 XML 的說明性工具和可視工具是非常好的機會。查看 XML 數據的自定義工具可使用 Visual Basic® 開發系統、Java 和 C++ 編寫。

XML 要求強大的新工具來表示文檔中豐富的、複雜的 XML 數據。通過將對用戶友好的顯示層映射到可動態更改的複雜的層次數據集的頂層,可以實現這一點。XML 數據可能使用的佈局,包括摺疊分級、PivotTable 動態視圖和每個公文夾的簡單表格。

Web 站點可以提供股票行情、新聞或實時交通數據。通過過濾 Web 廣播或智能輪詢複製這些站點的服務器樹,可以獲得這些數據。使用 XML 可以避免信息超載,辦法是編寫自定義的規則來處理電子郵件中的陳舊的信息。基於 XML 的、用戶構造這些規則的工具,以及運行這些工具的服務器和客戶機軟件,是個極好的巨大市場。“標準的對象模型”能啓用這些功能,它們通常被寫在腳本中,用於過濾傳入的消息、檢查存儲的消息、創建待發郵件、訪問數據庫等等。可編寫這些代理程序,以便在任何地方自動運行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章