XML入門(5)-XML標準

概述

XML 世界中存在多種標準。除了基本 XML 標準以外,其它標準定義了模式、樣式表、鏈接、Web 服務、安全性和其它重要項目。本章介紹最流行的 XML 標準,併爲您指出了查找其它標準的參考資料。

XML 規範

該規範(位於 w3.org/TR/REC-xml)定義了 XML 文檔的基本規則。本教程前面討論的所有 XML 文檔規則都是在此規範中定義的。

除了基本 XML 標準以外,名稱空間規範是 XML 的另一個重要部分。您也可以在 W3C 查找名稱空間標準:w3.org/TR/REC-xml-names/

XML Schema

XML Schema 語言定義成以下三個部分:

本教程在定義文檔內容中簡要地介紹了模式;如果您對於用 XML 模式可以做的所有事情,需要了解完整的詳細信息,那麼最好先閱讀“入門”。

XSL、XSLT 和 XPath


可擴展樣式表語言(Extensible Stylesheet Language(XSL))定義了一組元素(稱爲格式化對象),它們描述應該如何格式化數據。爲清晰起見,通常將該標準稱爲 XSL-FO 以和 XSLT 進行區分。儘管它主要是設計用於生成高質量的可打印文檔,但您也可以使用格式化對象從 XML 生成音頻文件。XSL-FO 標準位於 w3.org/TR/xsl/

用於轉換的可擴展樣式表語言(Extensible Stylesheet Language for Transformation(XSLT))是一個描述如何將 XML 文檔轉換成別的東西的 XML 詞彙表。該標準位於w3.org/TR/xslt(結尾沒有斜槓符號)。

XPath(XML 路徑語言,XML Path Language)是描述 XML 文檔中位置的語法。您使用 XSLT 樣式表中的 XPath 來描述您希望轉換 XML 文檔的哪個部分。XPath 也用在其它 XML 標準中,這就是爲什麼它是獨立於 XSLT 的標準的原因。XPath 在 w3.org/TR/xpath(結尾沒有斜槓符號)中定義。

DOM


文檔對象模型定義瞭如何將 XML 文檔轉換爲駐留內存的樹結構。DOM 在 W3C 的許多規範中都有定義:
  • 核心 DOM 定義 DOM 本身、樹結構、以及代碼遍歷樹時會發現的各種節點和異常。完整的規範在 w3.org/TR/DOM-Level-2-Core/
  • 事件定義對於樹可以發生的事件,以及如何處理這些事件。該規範試圖協調 Netscape 和 Internet Explorer 瀏覽器的版本 4 之後所支持對象模型之間的差異。該規範位於 w3.org/TR/DOM-Level-2-Events/
  • 樣式定義程序如何訪問 XSLT 樣式表和 CSS 樣式表。該規範位於 w3.org/TR/DOM-Level-2-Style/
  • 遍歷和範圍定義一些允許程序遍歷樹或定義樹中節點範圍的接口。可以在 w3.org/TR/DOM-Level-2-Traversal-Range/ 找到完整的規範。
  • 視圖爲文檔本身定義 AbstractView 接口。請參閱 w3.org/TR/DOM-Level-2-Views/ 以獲得更多信息。

SAX、JDOM 和 JAXP

用於 XML 的簡單 API 定義了一些事件和接口,用於與符合 SAX 的 XML 解析器進行交互。可以在 www.saxproject.org 上找到完整的 SAX 規範。

Jason Hunter 和 Brett McLaughlin 創建的 JDOM 項目位於 jdom.org/。在 JDOM 站點,您可以找到代碼、樣本程序和其它能幫助您入門的工具。(有關在 developerWorks 上介紹 JDOM 的文章,請參閱參考資料)。

有關 SAX 和 JDOM 的重要一點是:二者都來自 XML 開發人員社區,而不是標準組織。它們獲得的廣泛接受是對全世界 XML 開發人員積極參與的回報。

您可以在 java.sun.com/xml/jaxp/ 找到所有與 JAXP 有關的內容。

鏈接和引用


在 XML 世界中有兩個用於鏈接和引用的標準:XLink 和 XPointer:
  • XLink(XML 鏈接語言,XML Linking Language)定義將不同資源鏈接在一起的各種方法。您可以進行正常的點對點鏈接(就象用 HTML <a> 元素)或擴展的鏈接,後者可包括多點鏈接、通過第三方的鏈接以及定義轉向給定鏈接的意義的規則。XLink 標準位於 w3.org/TR/xlink/
  • XPointer(XML 指針語言,XML Pointer Language)使用 XPath 作爲引用其它資源的方法。它還包括對 XPath 的一些擴展。可以在 www.w3.org/TR/xptr/ 找到該規範。

安全性

有兩個處理 XML 文檔安全性的重要標準。一個是 XML 數字簽名(XML Digital Signature)標準(w3.org/TR/xmldsig-core/),它定義了用於數字簽名的 XML 文檔結構。您可以爲任何類型的數據創建 XML 數字簽名,不管它是 XML 文檔、HTML 文件、純文本、二進制數據還是其它東西。您可以用數字簽名來驗證一個特定文件自簽名後沒有被修改過。如果您要簽名的數據是 XML 文檔,您可以將 XML 文檔嵌入簽名文件本身,這會使數據和簽名的處理變得非常簡單。

另一個標準用於加密 XML 文檔。可以將 XML 文檔編寫得易於人們閱讀和理解,儘管這樣做很好,但如果文檔落入壞人之手就會引起麻煩。XML 加密(XML Encryption)標準(w3.org/TR/xmlenc-core/)定義瞭如何加密 XML 文檔的各部分。

將這些標準一起使用,您就能放心地使用 XML 文檔了。我可以對一個重要的 XML 文檔進行數字簽名,生成一個包含 XML 文檔本身的簽名。然後我可以加密該文檔(使用我的私鑰和您的公鑰)然後把它發送給您。當您收到文檔時,您可以用您的私鑰和我的公鑰解密該文檔;這可以讓您知道是我發送的文檔。(如果需要,您還可以證明我發送了文檔)。一旦您解密了文檔,您可以使用該數字簽名確定文檔沒有經過任何修改。

Web 服務

Web 服務是一種新的重要的應用程序。Web 服務是一段可以用 XML 發現、描述和訪問的代碼。在這一領域有許多活動,但有三種主要的用於 Web 服務的 XML 標準:
  • SOAP:最初是簡單對象訪問協議(Simple Object Access Protocol),SOAP 定義一個 XML 文檔格式,該格式描述如何調用一段遠程代碼的方法。我的應用程序創建一個描述我希望調用的方法的 XML 文檔,並傳遞給它所有必需的參數,然後應用程序通過網絡將該 XML 文檔發送給那段代碼。代碼接收 XML 文檔、解釋它、調用我請求的方法,然後發回一個描述結果的 XML 文檔。SOAP 規範版本 1.1 位於 w3.org/TR/SOAP/。請訪問 w3.org/TR/ 以瞭解 W3C 中 SOAP 相關的所有活動。
  • WSDL:Web 服務描述語言(Web Services Description Language)是一個描述 Web 服務的 XML 詞彙表。編寫一段接收 WSDL 文檔然後調用其以前從未用過的 Web 服務的代碼,這是可能的。WSDL 文件中的信息定義 Web 服務的名稱、它的方法的名稱、這些方法的參數和其它詳細信息。您可以在 w3.org/TR/wsdl(結尾沒有斜槓符號)找到最新的 WSDL 規範。
  • UDDI:統一描述、發現和集成(Universal Description, Discovery, and Integration)協議向 Web 服務註冊中心定義 SOAP 接口。如果您有一段代碼希望作爲 Web 服務部署,UDDI 規範定義如何將您的服務描述添加至註冊中心。如果您在尋找一段提供某種功能的代碼,UDDI 規範定義如何查詢註冊中心以找到您想要的信息。有關 UDDI 的所有資料來源都可以在 uddi.org 找到。

其它標準

還有許多其它的 XML 標準,我沒有在這裏深入介紹。除了象可伸縮向量圖(Scalable Vector Graphic)(www.w3.org/TR/SVG/)、SMIL(同步多媒體集成語言,Synchronized Multimedia Integration Language)(www.w3.org/TR/smil20/)那樣可廣泛應用的標準外,還有許多特定於業界的標準。例如,HR-XML 協會已定義了許多用於人力資源的 XML 標準;您可以在 hr-xml.org 找到那些標準。

最後,要查找有關 XML 標準的優秀信息來源,請訪問 xml.org/xml/registry.jsp 上的 XML 資源庫。該站點的特點是有數百個用於各行各業的標準。

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