<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Vincent.Chan‘s Blog

    常用鏈接

    統計

    積分與排名

    網站

    最新評論

    XML 標準概覽: 第 1 部分::核心標準——XML 大世界的基石

    級別: 初級

    Uche Ogbuji, 首席顧問, Fourthought, Inc.

    2004 年 2 月 01 日

    XML 世界非常龐大,而且還在不斷成長,存在大量不同的標準和技術,它們以復雜的方式互相影響。新手很難確定哪些是 XML 最重要的方面,用戶也難以跟蹤這個領域出現的新生事物和變化。在這一系列的文章中,Uche Ogbuji 提供了 XML 標準的指南,并為進一步的學習推薦了廣泛的資料。

    XML 變得越來越強大,得到了迅速的發展。它已經證明自己是一種非常有價值的技術,但可能也是一種令人害怕的技術,如果考慮到掛在“XML”一詞下面不斷變化的各個部分。在這一系列的文章中,我將簡述我認為最重要的 XML 技術,討論它們如何在 XML 世界中更大范圍內的彼此融合。為了進一步評估和學習使用各種技術,我還推薦了一些教程和其他有用的參考資料。

    這里介紹的所有技術都是 標準,盡管這個詞本身就有點捉摸不定。標準有各種各樣的形式,而且在同一個領域中常常有多種標準互相競爭。我按照實踐的方法把標準定義為:被不同的供應商大量采用的或者有影響的、獨立于供應商的組織推薦的規范。

    在第一篇文章中,我主要討論我認為是核心的 XML 技術。這些技術構成了 XML 文檔中所表達的內容的基礎。在以后的文章中,我將討論和開發人員處理 XML 有關的標準,和選擇一些最重要的 XML 應用(即詞匯表)。

    XML

    XML 1.0 (第 2 版) [W3C 推薦標準]當然是衍生出 XML 技術大樹的主干。它在 Unicode [Unicode Consortium 技術報告和 ISO 標準]的基礎上定義了文本格式的嚴格規則,以及 Document Type Definition (文檔類型定義,DTD)驗證語言。該規范的當前版本(第 2 版)包含了規范的歷次修訂。它被 翻譯 成多種語言,盡管英語版本是唯一的 規范版本,就是說只有這個版本被認為具有標準的效力。

    XML 1.1 [開發中]是改變了 結構良好的 XML 文檔的定義的第一個修訂版。主要的變化是修訂了 XML 規范中對字符的處理,使其更自然地適應 Unicode 規范的變化,并通過引用 Character Model for the World Wide Web(萬維網字符模型)1.0 [開發中],提供了不同 Unicode 版本字符的規范化。XML 1.1 還增加了行結束字符列表,新增加的 NEL 用于在 IBM 大型機系統中表示行結束(EOL)。這種變化存在爭議,有人認為對大型機用戶帶來的有限好處不值得做這種基礎性的改變。還有一些其他的爭論,因為一些評論者發現所有的修改都太穩妥了,在 XML 版本變換中不會造成各種可能的互操作性問題。

    XML 是基于 Standard Generalized Markup Language(標準通用標記語言,SGML)的,后者由 ISO 8879:1986 [ISO 標準]定義。它在很大程度上簡化了 SGML,包括一些調整使其更適合于 Web 環境。

    推薦的入門參考和教程

    • 以 Doug Tidwell 的文章“ XML 入門” ( developerWorks, 2002 年 8 月)作為起點。
    • ZVON 的 XML 教程DTD 教程有多種語言的版本。
    • Ken Sall 所著的 XML Family of Specifications: A Practical Guide中的 Excerpts一章提供了簡單的介紹。
    • W3Schools 和 W3C 沒有任何從屬關系,提供了包羅萬象的 XML 教程
    • Mike Brown 的“ skew.org XML 教程”是對 XML 的重新介紹,強調了編碼的問題,突出了其他文獻中經常掩蓋的一些主題。

    參考資料和其他資源





    回頁首


    Catalogs

    XML Catalogs [OASIS 委員會規范]定義了一種格式,指導 XML 處理程序把 XML 實體標識符解析成實際的文檔。比如,給定一個 DTD 的系統標識符和公共標識符, 實體目錄可用于規定 XML 處理程序從哪里加載 DTD。 系統標識符通常使用 Uniform Resource Identifiers(統一資源標識符,URI)給出,后者受 RFC 2396: Uniform Resource Identifiers [IETF RFC]的控制。URI 僅僅是對 Web 瀏覽器或者類似工具中所用的一般 URL 的擴展。所有的 URL 都是 URI,但是 URI 還包括 URN,URN 由 RFC 2141: Uniform Resource Names [IETF RFC]控制,這是使用名稱而不是位置標志 Web 資源的一種方式(請參閱“ The URN Charter”)。 公共標志符通常用 SGML 中定義的 Formal Public Identifiers(正式公共標志符,FPI)指定。目錄可能在這樣的情況下使用:所用的計算機不能訪問 URL 所指定的網絡資源,或者企業希望用當地版本代替外部資源。

    XML 目錄本身是一個 XML 文檔,不過是一種用于 SGML 的較老的格式,而 XML 使用更簡單文本定義了一種目錄格式: Entity Management, OASIS Technical Resolution 9401:1997 [OASIS 標準]。這種格式經常被稱為 OASIS Open Catalog

    推薦的入門參考和教程

    目錄處理通常作為 XML 解析器完整的一部分提供,但是有一些介紹性的資料專門討論使用目錄解析實體:

    多種風格的標準

    有幾種組織和非正式的團體參與了為 XML 用戶指定標準的過程。在 參考資料中提供了大多數鏈接,但這里我要解釋一下在本文中用于修飾標準的一些詞匯

    W3C 正式發布的 推薦標準,在技術上講僅僅是關于進一步標準化的建議,但是由于該組織自身的權威性往往成為 事實上的標準。首先是 工作草案,然后成為 候選推薦標準(提出來供開發人員通過實現進行測試的最終形式),接下來是 提議的推薦標準(準備進行推薦標準的待定 W3C 投票),最后規范進入推薦標準狀態。

    國際標準化組織(ISO) 可能是世界上最權威的標準體。它的許多標準在相關行業中都具有法律效力。

    結構化信息標準推進組織(OASIS) 大約從 SGML 的時代開始在結構上就發生了變化,但工作的成果是類似的。過去 OASIS 所稱的 Technical Resolutions(技術解決方案)現在變成了 Committee Specifications(委員會規范),目的和 W3C 推薦標準是類似的。

    Internet 工程任務組(IETF) 是一種依靠基層力量發達昌盛的組織模型,同時也嘗試引入正式組織的一些節制手段。差不多能夠訪問 Internet 的任何人都可以提交 Internet 草案,并建議作為一種可能的標準。一個指導小組對草案進行了評估,并可能推薦作為 Request for Comment(請求注釋,RFC)發布。RFC 可以標記為 Standards Track RFC(標準跟蹤 RFC)或者直接成為 Standard RFC(標準 RFC),但是成為 RFC 的多數文檔都經過詳細的考察,并且經常已經很好地實現過。

    最后還要向 XML 社區致意,他們創建非正式的但是重要的標準的努力填補了大型組織留下的空白。SAX、RDDL 和 EXSLT 是一些非常著名的例子。OASIS 通過努力已經成為吸引這類標準爭鳴的陣地,但是愿意通過郵件列表打造一種事實標準的仍然不乏其人。





    回頁首


    XML Namespaces

    Namespaces in XML 1.0 [W3C 推薦標準]提供了一種統一命名 XML 文檔中的元素和屬性的機制。一些這些簡單的例子可以解釋 XML NameSpace 幕后的動機:假設您有一個 XML 詞匯表,其中名為“head”和“body”的元素作為解剖學描述的標記,但是您希望在文檔中嵌入 XHTML (參見后述)片段。XHTML 也定義了“head”和“body”元素。如何從同名的宿主詞匯表元素中區分 XHTML 元素呢?使用 XML Namespaces 就可以為每種詞匯表指定一個標記。在 XML 名稱空間中,每種詞匯表被稱為一個名稱空間,有專門的語法表示詞匯表標記。每個元素或屬性名都和一個名稱空間聯系,這樣就能把解剖學上的“head”和 XHTML “head”區分開來。在 XML 專家中,對 XML 名稱空間曾經存在爭議,因為對 XML 處理模型增加了一點復雜性,一些人認為這樣做帶來的好處不能抵消引起的問題。無論如何,XML 名稱空間已經在 XML 用戶中得到了廣泛的認可,差不多所有的 XML 處理技術都能處理 XML 名稱空間。

    Namespaces in XML 1.1 [開發中]是一次更新,結合了勘誤表與補充,其中包括對國際化 URI 的支持。

    經常提出的和 XML 名稱空間有關的一個問題是,應該標識哪一類資源的名稱空間 URI。Jonathan Borden 和 Tim BrayOne 領導的 XML 專家組提出了 Resource Directory Description Language (資源目錄描述語言,RDDL)作為在名稱空間中打包信息的一種標準。RDDL 使用 XHTML 提供詞匯表的簡單描述,用內嵌的 XLink(將在本文中討論)提供到重要資源的指針,幫助理解和處理這種名稱空間。 RDDL 2.0[開發中]是一個升級版本,尋求通過兩種選擇代替 XLink: Resource Description Framework(資源描述框架,RDF)(后面討論)以及在郵件列表上為 W3C Technical Architecture Group(技術體系結構組,TAG)開發的替代 XML 鏈接建議。

    推薦的入門參考和教程

    上面提到的一些 XML 1.0 教程涉及到了 XML 名稱空間。此外還有:

    參考資料和其他資源





    回頁首


    XML Base

    XML Base [W3C 推薦標準]提供了一種聯系 XML 元素和 URI 方法,以便更精確地規定在相關的 XML 處理活動中如何解析相對 URI。比方說,如果一個 XML 元素包含使用相對 URL 的鏈接,要鏈接的絕對 URL 就要通過參考該元素的基 URL 來決定。多數 XML 處理程序都對組成文檔的每個 XML 實體假定一個基 URL,可以使用 XML Base 替換這種默認設置。

    推薦的入門參考和教程





    回頁首


    XInclude

    XML Inclusions (XInclude) 1.0 [開發中]提供了一種合并 XML 文檔的系統。XInclude 通常用于希望將 XML 文檔分成多個可管理的段的情況。可以根據需要分割文檔,然后再使用 XInclude 把文檔合并回去。 外部已解析實體是一種 XML 1.0 結構,允許從單獨的文件中加載文檔的一部分,可以完成類似的功能,從某種程度上說 XInclude 是一種不必要的規范。XInclude 提供了一些特殊的便利之處,比如在包含文檔時可以選擇包含文檔的哪些部分。

    推薦的入門參考和教程





    回頁首


    XML Infoset

    XML Information Set [W3C 推薦標準]也稱為 XML Infoset,定義了一種抽象的方式把 XML 文檔描述為一系列帶有特定屬性的對象,即 信息項。這種抽象數據集結合了在 XML 1.0、XML Namespaces 和 XML Base 中定義的 XML 文檔的各個方面。XML Infoset 被用作其他幾種規范的基礎,這些規范試圖把 XML 文檔分解成一些組成對象的集合。

    推薦的入門參考和教程





    回頁首


    Canonical XML ("c14n")

    Canonical XML Version 1.0 [W3C 推薦規范]是一種生成 XML 文檔物理表示的標準方法,稱為規范化形式,用于統一 XML 語法中不影響語義的幾種變體。比如,在 XML 中屬性的順序并不重要,因此如果一個文檔中所有的屬性都按照字母順序排列,而另一個相同的文檔以不同的方式保存屬性,盡管其物理表示不同,但對于 XML 1.0 而言兩個文檔是等價的。這有時候會造成應用中的問題。比如,如果希望用數字加密的簽名保護文檔不被篡改,改變屬性的順序會破壞簽名,盡管對 XML 1.0 來講文檔實際上并沒有改變。解決的辦法是在簽名、文本比較或者其他此類操作之前把文檔轉化成規范的形式(這個過程稱為“規范化(c14n)”)。這樣就可以保證正確地接納 XML 1.0 中認為不重要的變動。

    有時候需要比較或者簽署的 XML 實際上是一個更大的文檔的一部分。即便如此,c14n 通常也需要解決這種問題以便處理名稱空間聲明這樣的細節。如果需要把 c14n 嚴格限制在一個文檔子集中,就必須使用相關的算法 Exclusive XML Canonicalization Version 1.0[W3C 推薦標準]。





    回頁首


    XPath

    XML Path Language (XPath) 1.0 [W3C 推薦標準]是處理 XML 文檔部分的一種語法和處理模型。它包括一些通用表達式語言的特性,被設計成一種小型的語言,以便在 XML 系統中進行應用程序中立的處理。比如,可以使用 XPath 定位文檔中所有的節標題元素。

    除了 XML 1.0 本身,XPath 可能是最成功的 XML 技術。它是 XSLT(本系列文章中間加以論述)的核心,后者是一種非常成功的 XML 轉換語言,差不多所有的平臺上都提供它處理 XML。 XPath 2.0[開發中]增加了新的特性,包括對 W3C XML Schema(后面將討論)的支持和許多新的核心功能。這是一個飽受爭議的規范,因為它的龐大增加了復雜性;許多用戶和實現者(包括我自己)都說除非 XPath 2.0 得到很大的簡化,否則就避免使用它。

    推薦的入門參考和教程

    基本上所有關于 XSLT 的介紹都同時涉及到 XPath。這里列出專門討論 XPath 的教程:





    回頁首


    XPointer

    XPointer Framework [W3C 推薦標準]定義了一種語言,可用語音用 XML 文檔中的片段。對于使用帶有井號(#)的 URL 鏈接到 XML 文檔中的特定片段,您可能已經非常熟悉了。在鏈接和引用 XML 文檔時,XPointer 帶來了類似但是更廣泛的能力。這種框架可以和 xpointer() scheme[開發中]、 element() scheme[W3C 推薦標準]以及 xmlns() scheme[W3C 推薦標準]一起使用,這些標準定義了在 XPointer 框架中表達所關心的文檔片段的具體要求。

    XPointer 經歷了一段艱難的歷程,飽受非議。XPointer 工作組本身的成員開發了一種相反的建議, FIXptr [社區標準]。幾種替代的 XPointer 方案包括 the xpath1() scheme[IETF Internet 草案]。

    推薦的入門參考和教程

    在成為推薦標準之前,XPointer 進行了非常大的修改,所以要注意有許多教程所討論的是舊版本。





    回頁首


    XLink

    XML Linking Language (XLink) 1.0 [W3C 推薦標準]提供了一種在 XML 文檔中表示鏈接的通用框架。需要鏈接的超文本是 Web 的基礎,加入完善的鏈接能力一直被認為是 XML 的基石。事實上,XLink 最初被稱為 "XML part 2"。不幸的是實踐證明,為 XML 定義一種鏈接系統和為 HTML 這樣的靜態詞匯表定義鏈接系統相比要遠遠復雜得多。XLink 的開發經歷了漫長的過程,遭受了種種非議。比如,XHTML (本系列文章將討論)的開發者決定不使用 XLink 而創建他們自己的系統,稱為 HLink [開發中]。即使到現在,XLink 已經完成兩年了,對它的采用仍然非常緩慢。。

    無論如何,XLink 都非常重要,處在許多 XML 相關項目中的中心位置,與基本的、單向的 HTML 鏈接相比提供了更豐富的鏈接功能。XLink 頁提供了這種鏈接( 簡單鏈接),同時還提供了更復雜的可以有多個端點的鏈接( 擴展鏈接),甚至還有在鏈接的文檔中沒有表達而是在專門的中心文檔(稱為 鏈接庫)中表示的鏈接。

    推薦的入門參考和教程

    您可能會找到討論該語言的舊的、廢止的草案的 XLink 教程。下面是最新的教程:

    參考資料和其他資源

    • ZVON 也提供了一份“ XLink Reference”。
    • Bob DuCharme 在他的文章中“ XLink: Who Cares?”中討論了 XLink 的歷史并研究了它的實現。




    回頁首


    RELAX NG

    RELAX NG [OASIS 委員會規范和 ISO 草案標準]是一種 XML 模式語言,即一種可用于定義和限制 XML 詞匯表的語言。最初的 XML 模式語言是 XML 1.0 自己定義的文檔類型定義(DTD)。但是,一些人不喜歡 DTD,因為它丑陋的語法、表達文本和標記結構的局限性,并且難以處理 XML Namespaces。出現了幾種新的 XML 模式語言以取代或者增強 DTD,其中包括 RELAX NG,以其簡單性和表達能力而聞名。RELAX NG 的核心規范定義了架構的 XML 語法,此外 RELAX NG Compact Syntax [OASIS 委員會規范]還為 RELAX NG 架構定義了一種簡單的文本語法。人們期望這種文本語法作為補充添加到 ISO 標準中。RELAX NG 是稱為 Document Schema Definition Languages(文檔模式定義語言,DSDL)的整個 ISO XML 模式處理系統的研究工作的一部分。

    推薦的入門參考和教程

    • 閱讀 Nicholas Chase 的入門教程“ 理解 RELAX NG”,它可以幫助您迅速領略 RELAX NG 的簡單性和強大功能,包括它的完全基于 XML 的語法和緊湊語法( developerWorks,2003 年 12 月)。
    • David Mertz 在 developerWorks 上的“XML 問題”專欄,在其系列文章“使用 RELAX NG 反擊”中專門討論了 RELAX NG:
      • 第 1 部分考察了 RELAX NG 的一般語法,并涉及到數據類型化(2003 年 3 月)。
      • 第 2 部分通過解決幾個附加的語義問題繼續前面的討論,并考察了可以使用 RELAX NG 的工具(2003 年 3 月)。
      • 第 3 部分詳細探討了 RELAX NG 緊湊語法,并揭示了緊湊語法和 XML 語法之間的完全對應關系(2003 年 5 月)。
    • RELAX NG 的正式教程 核心和它的 緊湊語法
    • ZVON 提供了一個混合教程 RELAX NG and W3C XML Schema language(本系列文章將討論)。

    參考資料和其他資源





    回頁首


    W3C XML Schema

    XML Schema Part 1: Structures XML Schema Part 2: Datatypes[W3C 推薦標準]定義了另一種 XML 模式語言。 第一部分用于約束文檔的結構,第二部分則用于約束簡單元素和屬性的內容。W3C XML Schema (WXS) 由于過于復雜和表達能力不足而受到了批評,結果造成與其他語言如 RELAX NG 的競爭。逐漸地,人們開始僅僅使用最適合自身的模式語言,而根據需要求助于轉換工具從一種形式轉化成另一種形式,這類工具的大量涌現給人留下了深刻的印 象。許多其他的規范已經采用了 WXS DataTypes 規范,盡管也有開發其他數據類型系統的呼聲。工作組已經開始 WXS 1.1 的研發工作。

    推薦的入門參考和教程

    • Nicholas Chase 的 developerWorks教程“ 驗證 XML”同時涉及到 DTD 和 WXS(2003 年 8 月)。
    • W3Schools 有一個 WXS 教程.
    • W3C XML Schema 工作組在 XML Schema Part 0: Primer中對這種技術作了透徹而淺顯的介紹。

    參考資料和其他資源





    回頁首


    Schematron

    Schematron Assertion Language 1.5 [社 區標準和草案 ISO 標準]是一種模式語言,使用了不同于 DTD、RELAX NG 和 WXS 的方法。在 Schematron 中,您需要對要檢查的 XML 文檔登記一組規則,而不是繪制出試圖表達的 XML 格式從根節點到葉子的整個樹結構。這就使得 Schematron 不僅可以作為一種獨立的、非常有用的模式語言,也可以作為其他模式語言的補充。Schematron 可以表達我所討論的其他語言所不能表達的約束,因此經常與其他語言協同使用。

    推薦的入門參考和教程

    參考資料與其他資源





    回頁首


    后續內容

    本文中綜述了最重要的核心 XML 標準。在第 2 部分,我將介紹對于在應用程序處理中使用 XML 的人而言非常重要的標準。





    回頁首


    參考資料





    回頁首


    關于作者

    Uche Ogbuji 的照片

    Uche Ogbuji 是 Fourthought Inc.的顧問和共同創始人,該公司是專為企業知識管理提供 XML 解決方案的軟件供應商和咨詢公司。 Fourthought 開發了 4Suite,這是一個用于 XML、RDF 和知識管理應用程序的開放源代碼平臺。Ogbuji 先生是一位出生于尼日利亞的計算機工程師和作家,他現在美國科羅拉多州的博耳德生活和工作。可以通過 uche.ogbuji@fourthought.com 和 Ogbuji 先生聯系。

    posted on 2006-03-18 21:27 Vincent.Chen 閱讀(325) 評論(0)  編輯  收藏 所屬分類: AJAX

    主站蜘蛛池模板: 亚洲午夜久久久久久尤物| 国产偷v国产偷v亚洲高清| 亚洲午夜无码久久久久软件| 久久久久高潮毛片免费全部播放| 亚洲爆乳无码一区二区三区| 人妻在线日韩免费视频| 亚洲不卡中文字幕无码| 69视频免费观看l| 亚洲人成影院在线高清| 天天天欲色欲色WWW免费| 亚洲youwu永久无码精品| 亚洲AV网站在线观看| 4hu四虎免费影院www| 亚洲精品无码久久久影院相关影片| 免费一区二区三区| 亚洲高清中文字幕| 女人18毛片水最多免费观看| 精品亚洲福利一区二区| 国产成人精品久久亚洲| 很黄很污的网站免费| 亚洲无砖砖区免费| 免费毛片网站在线观看| h片在线播放免费高清 | 一个人看的免费观看日本视频www| 亚洲人成影院在线观看| 国产激情免费视频在线观看| 亚洲av永久无码精品天堂久久 | 免费无码一区二区三区蜜桃大| 无码天堂亚洲国产AV| 亚洲精品成人网站在线观看 | 男女啪啪免费体验区| 亚洲an天堂an在线观看| 日韩免费视频一区| 国产无遮挡又黄又爽免费网站| 亚洲色成人网一二三区| 四虎永久在线精品免费观看地址 | 又黄又大又爽免费视频| 无码日韩精品一区二区三区免费| 亚洲 日韩 色 图网站| 国产精品亚洲mnbav网站 | va亚洲va日韩不卡在线观看|