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 [開發中]是這種語言的升級,增加了注釋、索引、書簽之類的特性,并增強了圖像的處理能力。
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 不僅作為一種圖像格式,而且成為具有廣泛應用前景的平臺。
Voice Extensible Markup Language (VoiceXML) Version 2.0 [開發中]是一種創建音頻、語音和電話應用程序的語言。它包含的音頻對話框具有以下特點:語音合成、數字音頻、聲音識別和電話音質撥號輸入和話音輸入錄制。它尋求把基于 Web 的開發和內容傳遞的優勢帶入交互式語音響應應用程序中。VoiceXML 是 W3C Speech Interface Framework [開發中]的一部分,后者還包括其他的標準,由于這些標準與電話行業的界限非常模糊,這里就不討論了。VoiceXML 2.0 標志著 VoiceXML 規范從 VoiceXML Forum 轉向 W3C,前者仍然在努力改進這種技術。關于 VoiceXML 已經有了一些專利聲明,其中一些意味著 VoiceXML 用戶將面臨版權和許可費的問題。
Mathematical Markup Language (MathML) 2.0 [W3C 推薦標準]是一種 XML 語言,按照該規范的說法,其目的是“促進數學和科學內容在 Web 上,以及其他應用程序如計算機代數系統、打印排版及語音合成中的使用和重用。MathML 可用于對能夠高質量顯示的數學符號表示編碼,也可用于為語義起著更重要作用的應用程序對數學內容編碼,如科學軟件或語音合成。”MathML 常用于在教育、科學論文、工業規范、規章內容等領域中表示等式、公式或者類似的信息。這個版本對 MathML 1.01 [W3C 推薦標準]增加了一些相對較新的特性。MathML 經常和 XHTML、SVG 以及其他應用一起使用。
SMIL 2.0 [W3C 規范],按照 W3C 的說法,“支持簡單地編輯交互式[音頻/視頻]演示文稿。SMIL 通常用于[‘豐富媒體’或多媒體]演示文稿,其中集成了流式音頻和視頻、圖像、文本或者任何其他媒體類型。SMIL是一種簡單易學的類 HTML 語言,許多 SMIL 演示文稿都是使用簡單的[文本編輯器]編寫的。”SMIL 是 W3C Synchronized Multimedia activity 的一個產品,已經升級到了 SMIL 1.0 [W3C 推薦標準],增加了和動畫、元數據、內容控制、鏈接、定時與同步、事件處理、過渡效果等有關的特性。
差不多在 W3C 致力于以 XML 為代表的下一代標記技術的同時,它也開始了下一代 Web 資源形式化描述技術的研究。Resource Description Framework (RDF) [W3C 推薦標準]是一種模型,用于描述一組 Web 資源聲明。這些聲明被概念化為三元組,每一個都包含主語(一個 URI——本系列文章前已述及)、謂詞(也是一個 URI)和對象(一個 URI 或字面數據值)。要理解這種聲明的意義,可以想一想描述 Web 頁面的 HTML meta 標簽。如果套用在 RDF 上,主語就是 Web 頁面本身的 URI,謂詞是一個標準 URI 表示一般的描述,而對象就是描述的實際文本。通過大量使用 URI,RDF 希望盡量減少這些聲明成分標識的歧義,從而更加形式化以便于機器處理。RDF 能否實現這一目標還存在爭議,但是 RDF 以其非常活躍的社區和范圍廣泛的工具而知名。
RDF 是 W3C Semantic Web activity 的支柱;Semantic Web 是 Web 的一種視像,不僅僅是內容的表示,還包括內容的注釋以幫助表達它的含義。比如,在 Semantic Web 中描述 Web 資源時,可以區分 "python"(一種蛇)和 "python"(一種計算機編程語言)這樣的概念。RDF 標準化由大量規范組成,包括:
Resource Description Framework (RDF): Concepts and Abstract Syntax [W3C 推薦標準]提出了目標、核心概念、基本數據模型以及 RDF 的抽象語法。
RDF/XML Syntax Specification [W3C 推薦標準]定義了 RDF 的一種通用 XML 表示。許多觀察者包括我自己,都抱怨 RDF/XML 語法可憐的標記設計。
RDF Vocabulary Description Language 1.0: RDF Schema [W3C 推薦標準]定義了一個 RDF 詞匯表,可用于定義其他 RDF 詞匯表。
RDF Semantics [W3C 推薦標準]不是供內心缺乏勇氣的人看的,它探討了 RDF 數據模型底層的形式數學理論。
Web Ontology Language (OWL) [W3C 推薦標準]是 RDF 的一個應用,通常用 RDF/XML 編碼,增加了豐富的詞匯表可用于對 RDF 資源進行正式分類和歸納。
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。
新聞熱點
疑難解答