Vincent.Chan‘s Blog

          導航

          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          公告

          本博客僅為收集留待閱讀。在此對原作者表示感謝。
          ---------------------------

          留言簿(11)

          隨筆分類

          文章分類

          隨筆檔案

          文章檔案

          相冊

          閱讀排行榜

          評論排行榜

          常用鏈接

          統計

          積分與排名

          網站

          最新評論

          XML 標準概覽: 第 3 部分:最重要的詞匯表

          級別: 中級

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

          2004 年 3 月 01 日

          XML 世界非常龐大,而且還在不斷成長,存在大量不同的標準以復雜的方式互相影響。新手很難確定哪些是 XML 最重要的方面,用戶也難以跟蹤這個領域出現的新生事物和變化。XML 是一種基本語法,可用于開發本地或全局的詞匯表。XML 成功的關鍵就在于一些非常重要的數據格式定義成了 XML 詞匯表。本文中,Uche Ogbuji 將介紹其中最重要的一些詞匯表。

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

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

          本系列的第一篇文章中主要討論了核心 XML 技術。(關于各種標準開發團體的概述以及標準的分類請參閱 那篇文章中的側欄。) 第二篇文章中 探討了和開發人員處理 XML 有關的標準。本文中我將介紹最重要的一些 XML 應用(也稱為詞匯表,雖然不很準確)。和原來的 SGML 一樣,XML 也是一種元語言,是定義其他語言的語法基礎。這些語言(如 SGML 中的 HTML,XML 中的 XHTML)是 應用——不要與程序員編寫的應用程序(軟件應用)如 IBM DB2 混淆。

          在第 4 部分,我將就以前所述的這些信息加以比較,提供一個方便的交叉索引。

          XHTML

          XHTML 1.0 [W3C 推薦標準]基本上是對 HTML 4 的改寫,使其成為結構良好的 XML。HTML 是一種 SGML 應用,當 XML 作為對 SGML 在 Web 應用上的簡化和規范化開發出來的時候,HTML(本身是 Web 上的 通用語言) 就成為采用 XML 的首選目標。于是出現了 HTML 的一種變體,稱為 XHTML。XHTML 研究的目標是一種更容易解析(因為 XML 的語法更加嚴格)的 HTML 語言。XHTML 很容易用現成的 XML 工具處理,力求更好地分離內容與表示。XHTML 是最古老的 XML 應用之一,有許多利益集團在不同的部分和版本中起過作用。我將盡力對其中的大部分加以概括。

          與三種HTML 4 DTD—— Strict、 TransitionalFrameset對應,XHTML 1.0 定義了不同的 DTD 和名稱空間。 Modularization of XHTML[W3C 推薦標準]提供了一個框架,把 XHTML 分解成單獨的模塊,作為不同的 DTD 定義。比如,用于定義列表的所有元素和屬性組成一個模塊,而和表示有關的元素類型則放在另一個模塊中。這樣,就可以通過增加、減少和修改通用的獨立模塊開 發和重新定義 XHTML。沿著這條路線,第一步就是 XHTML Basic[W3C 推薦標準],它定義了任何作為 XHTML 的語言都必須具有的最小 XHTML 模塊集。XHTML Basic 本身可以作為 Web 客戶的內容語言,如移動電話、PDA、尋呼機和置頂盒。 XHTML 1.1[W3C 推薦標準]基本上就是使用模塊框架分解的 XHTML 1.0 Strict DTD。

          XHTML 2.0 [開發中]是對 XHTML 的重寫,沒有考慮與 HTML 的向后兼容。這種想法差不多就是為 Web 編寫一種全新的內容語言,學習過去的經驗而又不束縛于過去。其中大的變化有:

          • 取消了 <br/> 、 <img/> 以及其他認為過于面向表示的元素
          • 取消 HTML 風格的表單,改為支持 XForm(本系列文章 前已述及
          • 取消 HTML 風格的鏈接改為 HLink(本系列文章中 前已述及
          • 用 XML Event 代替許多 JavaScript 驅動的動態任務
          • 用 XFrame 代替 HTML 風格的框架

          更重要的是,XHTML 2.0 做了許多擴展,增強了作者表達內容結構和含義的能力。打破向后兼容性引起了爭議。一些評論者認為保持 (X)HTML 的名稱只修改版本號會造成混亂。其他人則說這些修改非常必要,而 XHTML 實際上仍然是一種 可擴展超本文標記語言,因此保留原來的名稱非常合適。

          XHTML 常常和其他嵌入格式一起使用,如 MathML、RDF、SVG、SMIL 和 VoiceXML(后面都將予以介紹)。這種混合文檔稱為 多模的或者 非單體的。W3C、ISO 以及其他組織正投入巨大的努力鼓勵對這種文檔的強力支持。

          推薦的入門參考和教程

          • Sathyan Munirathinam 的 “ XHTML:兩種語言的力量”( developerWorks,2002 年 7 月),以及 Molly Holzschlag 撰寫的 “ XHTML 1.0: Marking up a new dawn”( developerWorks,2000 年 10 月),提供了 XHTML 1.0 的簡要介紹。
          • Nicholas Chase 的 “ Web 的未來:XHTML 2.0”( developerWorks,2002 年 9 月)盡管寫得比較早,仍然是關于 XHTML 2.0 所作修訂的很好介紹。
          • 如果希望理解這種語言的構造塊,教程 “ XHTML 的模塊化”(Nicholas Chase, developerWorks,2001 年 10 月)非常有用。

          參考資料和其他資源





          回頁首


          Docbook

          Docbook 原來是一種流行的 SGML 格式,用于編纂書籍和文檔,尤其是帶有較多技術特性的文檔。后來增加了一個 XML 版本, DocBook XML V4.2[OASIS 委員會規范]是最新的成果。Docbook 非常流行,得到了許多工具的支持,其中很多工具非常成熟。它作為避免混合表示問題與內容格式的一個范例而受人尊敬。最近,一些開發人員開始抱怨它從過去的 版本繼承了太多的負擔,紛紛討論(甚至包括它的主要開發者 Norm Walsh)為這種格式重新開發一種新的、不向后兼容的版本。

          Text Encoding Initiative (TEI) 甚 至比 Docbook 更古老,這種文檔格式在某種程度上與 Docbook 的應用范圍類似,區別在于它通常處理的是人文學科的文本而非技術文本。TEI 本身不是一種 SGML 或 XML 應用,而是一組用于構造語言(DTD)的指導原則。最常用的 TEI 變體是 TEI Lite[社區標準]。TEI 以其復雜性馳名,這在一定程度上限制了它被大量采用,但是它得到了很好的維護,并在一些社區中有狂熱的用戶。

          推薦的入門參考和教程

          • David Mertz, Ph.D. 撰寫的 “ DocBook XML 方言入門”( developerWorks,2000 年 10 月)是一篇高水平的介紹。
          • Norman Walsh 的 “ Introducing DocBook” 是一篇非常深入的介紹,采用了演示幻燈片的形式。
          • XML 問題: TEI -- 文本編碼規范”(David Mertz, Ph.D., developerWorks,2003 年 9 月)對 TEI 做了高水平的介紹。

          參考資料和其他資源

          • DocBook.org基本上是關于 Norman Walsh 所著 DocBook: The Definitive Guide(O'Reilly & Associates, 1999) 一書的站點。它把全書的內容都放在了網上,并作了很好的鏈接,這是關于 DocBook 各個方面的很好很詳細的參考。
          • DocBook Wiki是關于這種語言的信息和討論的協作空間。




          回頁首


          XSL-FO

          Extensible Stylesheet Language Formatting Objects (XSL-FO) [W3C 推薦標準]是一種使用 XML 定義的表示語言。(注意,鏈接規范的標題是 "Extensible Stylesheet Language (XSL)",但內容事實上只包括 XSL 的格式化對象方面。)XSL-FO 是一種 XML 格式,可被任何用戶代理用于按照開發人員給定的精確規范呈現內容。它的角色類似于 Web 用戶界面中的 XHTML, 但是更加復雜,以便表達適用于打印形式的格式化細節。這些細節和級聯樣式表(CSS——本系列文章 前已述及)中所規定的沒有什么不同,但是在 XSL-FO 中,這些細節構成了這種標記語言本身的一個實例,而不是呈現單個標記的指令。

          XSL-FO 常用作 XSLT(本系列文章 前已述及)的輸出格式。事實上,最初 XSLT 和 XSL-FO 是一個系統,稱為 XSL,但是工作組明智地將這兩個部分分成了兩個不同的規范。有多種開放源代碼的或者商業化的工具可以將 XSL-FO 轉化成 TeX、Adobe 的 PDF以及其他適于打印和排版的(非 XML)輸出格式。這種應用模式使 XSL-FO 非常流行,但是 XSL-FO 一直希望成為 WYSIWYG 工具或者類似工具的原生呈現格式,它的這種應用也開始受到推動。 XSL-FO 1.1[開發中]是這種語言的升級,增加了注釋、索引、書簽之類的特性,并增強了圖像的處理能力。

          推薦的入門參考和教程

          • Doug Tidwell 的教程 “ XSL 格式化對象(XSL-FO)基礎知識”( developerWorks,2003 年 2 月)是一個非常友好的起點。他的后續文章“ XSL-FO 高級技術”( developerWorks,2003 年 2 月)介紹如何使用 XSL-FO 完成更加復雜的任務,如格式化數據、創建復雜的文檔、把 HTML 元素轉化成格式化對象然后再轉化成 PDF 文檔。最后,他的“ HTML 至格式化對象(FO)轉換指南”( developerWorks,2003 年 2 月)示范了如何使用 XSLT 模板把常用的 HTML 元素轉化成格式化對象,以便更容易轉換為 PDF。
          • Rodolfo M. Raya 的“ 使用 XSL-FO 創建可打印文檔”( developerWorks,2001 年 1 月)主要討論將 XSL-FO 用于創建可打印的數據庫報表。
          • J. David Eisenberg 的“ Using XSL Formatting Objects”是一篇簡要的介紹,強調了 XSL-FO 強大的國際化支持。

          參考資料和其他資源

          • ZVON 提供了一個 XSL FO 參考,勾勒了元素之間的一些關系,但是沒有深入每種元素的語義。
          • Dave Pawson 的 XSL FAQ探討了 XSL-FO 以及 XSLT 和 XPath。




          回頁首


          SVG

          Scalable Vector Graphics (SVG) 1.1 [W3C 推薦標準]是一種描述二維圖像的語言。它主要是一種 向量圖形語言,盡管也支持一些 光柵圖 形特性。SVG 的非凡雄心是提供一種實用的、靈活的、使用(以冗長聞名的)XML 表示的圖像格式,而且在這點上做的很成功。SVG 的特性包括:嵌套轉換、剪輯路徑、alpha 蒙板、光柵過濾效果、模板對象,當然還有可擴展性。SVG 也支持動畫、縮放和移動視圖、各種圖形原語、分組、腳本、超鏈接、結構化元數據、CSS、一種專用的 DOM 超集(DOM 和 CSS 前已述及),并且很容易嵌入其他 XML 文檔。SVG 的一些設計決策經歷了不很激烈的爭論,其中包括向量路徑在單個屬性中使用空格分隔的數字列表表示,但是總體上 SVG 已經成為應用最廣泛的并受到熱烈歡迎的一種 XML 應用。該規范已經被 翻譯成了多種語言。

          SVG 1.1 是對 SVG 1.0[W3C 推薦標準]的更新,增加了一些新特性,也包括一些更正。最大的區別是 SVG 1.1 以類似 XHTML 1.1+ 的方式進行了模塊化。這種模塊化使得 SVG 能夠擴展甚至精簡,就像 Mobile SVG Profiles: SVG Tiny and SVG Basic[W3C 推薦標準]那樣。后者定義了 SVG 模塊的精簡集,適用于移動電話和 PDA。 SVG 1.2[開發中]致力于增加許多新工具,使 SVG 不僅作為一種圖像格式,而且成為具有廣泛應用前景的平臺。

          推薦的入門參考和教程

          參考資料和其他資源

          • SVG Wiki,一個協作資源索引和討論網頁,是關于這種語言的各種信息的公共消息交換中心。
          • ZVON 的 SVG Reference提供了元素之間的關系圖和一些例子。




          回頁首


          VoiceXML

          Voice Extensible Markup Language (VoiceXML) Version 2.0 [開發中]是一種創建音頻、語音和電話應用程序的語言。它包含的音頻對話框具有以下特點:語音合成、數字音頻、聲音識別和電話音質撥號輸入和話音輸入錄制。它尋求把基于 Web 的開發和內容傳遞的優勢帶入 交互式語音響應應用程序中。VoiceXML 是 W3C Speech Interface Framework[開發中]的一部分,后者還包括其他的標準,由于這些標準與電話行業的界限非常模糊,這里就不討論了。VoiceXML 2.0 標志著 VoiceXML 規范從 VoiceXML Forum轉向 W3C,前者仍然在努力改進這種技術。關于 VoiceXML 已經有了 一些專利聲明,其中一些意味著 VoiceXML 用戶將面臨版權和許可費的問題。

          推薦的入門參考和教程

          參考資料和其他資源





          回頁首


          MathML

          Mathematical Markup Language (MathML) 2.0 [W3C 推薦標準]是一種 XML 語言,按照該規范的說法,其目的是“促進數學和科學內容在 Web 上,以及其他應用程序如計算機代數系統、打印排版及語音合成中的使用和重用。MathML 可用于對能夠高質量顯示的數學符號表示編碼,也可用于為語義起著更重要作用的應用程序對數學內容編碼,如科學軟件或語音合成。”MathML 常用于在教育、科學論文、工業規范、規章內容等領域中表示等式、公式或者類似的信息。這個版本對 MathML 1.01[W3C 推薦標準]增加了一些相對較新的特性。MathML 經常和 XHTML、SVG 以及其他應用一起使用。

          推薦的入門參考和教程

          參考資料和其他資源

          • ZVON 的 MathML 2 參考更類似一個索引,反映了元素之間的關系。




          回頁首


          Synchronized Multimedia Integration Language (SMIL)

          SMIL 2.0 [W3C 規范],按照 W3C 的說法,“支持簡單地編輯交互式[音頻/視頻]演示文稿。SMIL 通常用于[‘豐富媒體’或多媒體]演示文稿,其中集成了流式音頻和視頻、圖像、文本或者任何其他媒體類型。SMIL是一種簡單易學的類 HTML 語言,許多 SMIL 演示文稿都是使用簡單的[文本編輯器]編寫的?!盨MIL 是 W3C Synchronized Multimedia activity的一個產品,已經升級到了 SMIL 1.0[W3C 推薦標準],增加了和動畫、元數據、內容控制、鏈接、定時與同步、事件處理、過渡效果等有關的特性。

          推薦的入門參考和教程

          參考資料和其他資源





          回頁首


          RDF

          差不多在 W3C 致力于以 XML 為代表的下一代標記技術的同時,它也開始了下一代 Web 資源形式化描述技術的研究。 Resource Description Framework (RDF)[W3C 推薦標準]是一種模型,用于描述一組 Web 資源聲明。這些聲明被概念化為 三元組,每一個都包含 主語(一個 URI——本系列文章 前已述及)、 謂詞(也是一個 URI)和 對象(一個 URI 或字面數據值)。要理解這種聲明的意義,可以想一想描述 Web 頁面的 HTML meta 標簽。如果套用在 RDF 上,主語就是 Web 頁面本身的 URI,謂詞是一個標準 URI 表示一般的描述,而對象就是描述的實際文本。通過大量使用 URI,RDF 希望盡量減少這些聲明成分標識的歧義,從而更加形式化以便于機器處理。RDF 能否實現這一目標還存在爭議,但是 RDF 以其非?;钴S的社區和范圍廣泛的工具而知名。

          RDF 是 W3C Semantic Web activity的支柱; Semantic Web是 Web 的一種視像,不僅僅是內容的表示,還包括內容的注釋以幫助表達它的含義。比如,在 Semantic Web 中描述 Web 資源時,可以區分 "python"(一種蛇)和 "python"(一種計算機編程語言)這樣的概念。RDF 標準化由大量規范組成,包括:

          Web Ontology Language (OWL) [W3C 推薦標準]是 RDF 的一個應用,通常用 RDF/XML 編碼,增加了豐富的詞匯表可用于對 RDF 資源進行正式分類和歸納。

          推薦的入門參考和教程

          參考資料和其他資源





          回頁首


          XML Topic Maps

          Topic Maps [ISO 國際標準,編號 13250]提供了組織信息的一個系統,在某些方面是與 RDF 競爭的一種 Semantic Web 技術。具體而言, XML Topic Maps[ISO 13250 的一部分]是 Topic Maps 一種 Web 友好的版本,使用 XML 語法,并以 URI 作為標識符。與 RDF 相似,Topic Maps 定義了一種類似圖的模型,但更細微的差別和這樣一個事實有關,即 Topic Maps 的一個重要規定是實際概念與其計算機表示的區分。Topic Maps 的這種做法是 Semantic Web 的一種基本工具,還是增加了不必要的復雜性,在 Topic Maps 與 RDF 支持者之間的這種爭論永遠不會劃上句號。XML Topic Maps 使用了一種非常清晰的 XML 語法,這種語法基于 XLink(本系列文章 前已述及)。

          推薦的入門參考和教程

          參考資料和其他資源





          回頁首


          只是淺嘗輒止

          在本系列文章中,在有限的空間中選擇哪些內容進行討論讓我煞費苦心。很多信息不可能包含進來,尤其是關于 XML 應用的這篇文章。XML 的一個優點同時也是禍根,它讓每個人都可以很容易地定義自己的語言。目前存在的難以計數的詞匯表都可以稱為這種或那種形式的標準。在形形色色的目標之間, 我主要把目光放在那些最流行、采用最廣泛的那些標準上。

          您還可以找到關于正式商業文檔交換的許多標準,要了解這些數不清的選擇,您可以看看下面列出的 參考資料,既有私有的也有標準的。在我的 Thinking XML專欄 中也討論了許多這樣的標準。

          下一篇文章是本系列的最后一篇文章,我將對講述過的內容進行比較,并一一列出以便交叉參考。





          回頁首


          參考資料





          回頁首


          關于作者

          Uche Ogbuji 的照片

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

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

          主站蜘蛛池模板: 镇江市| 昭苏县| 宜昌市| 大洼县| 大关县| 宁国市| 赫章县| 昌乐县| 惠来县| 富裕县| 青州市| 岑巩县| 中西区| 朝阳区| 伊宁市| 德安县| 肇州县| 五原县| 恭城| 图木舒克市| 黔西县| 莒南县| 建湖县| 巴里| 岐山县| 双牌县| 团风县| 西乌珠穆沁旗| 星座| 丹寨县| 新绛县| 贵溪市| 迭部县| 公安县| 韩城市| 阿克陶县| 滕州市| 卢氏县| 黔江区| 清镇市| 河源市|