將改變我們生活的XML有關的這些應用,你知道多少?
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、Transitional 和 Frameset 對應,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 以及其他組織正投入巨大的努力鼓勵對這種文檔的強力支持。
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 以其復雜性馳名,這在一定程度上限制了它被大量采用,但是它得到了很好的維護,並在一些社區中有狂熱的用戶。
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 [開發中]是這種語言的升級,增加了注釋、索引、書簽之類的特性,並增強了圖像的處理能力。