XML 標準誕生 20 週年:這個世界,它無處不在

類別: IT


可擴充套件標記語言(XML)於 1998 年 2 月 10 日成為 W3C 的推薦標準。昨天,2018 年 2 月 10 日恰好是 W3C 推出的 XML 標準釋出 20 週年紀念日。可點此檢視原始的新聞稿,以及最新的 XML 標準。

下面我們不妨看看 XML 的發展歷程。

正如原來的規範文字所表述的:

可擴充套件標記語言(XML)是本文件中完整描述的 SGML 的一個子集。它的目標是使通用的 SGML 能夠通過 HTML 現在可行的方式在 Web 上被提供、接收和處理。XML 旨在簡化 SGML 和 HTML 的實現以及互操作性。

雖然 XML 最初的目標 —— 取代網路上的 HTML,並沒有實現,但作為無數出版標準以及企業、電子政務和衛生保健資料交換的基礎,它取得了巨大的成功。許多或甚至大部分應用程式的 XML 已經找到了自己的用途,而對於 SGML 和 XML 的原始目的 —— 編碼半結構化文字,幾乎沒有任何相關的應用;相反,XML 在大多數時候都被用作通用結構化資料格式。

事實上,XML 從 1995 年開始就已有其雛形,並向 W3C 提案,在 1998 年二月釋出為 W3C 的標準(XML 1.0)。XML 的前身是 SGML(The Standard Generalized Markup Language),是自 IBM 從 1960 年代就開始發展的 GML(Generalized Markup Language) 標準化後的名稱。

GML 的重要概念:

  • 檔案中能夠明確的將標示與內容分開

  • 所有檔案的標示使用方法均一致

1978 年,ANSI 將 GML 加以整理規範,釋出成為 SGML,1986 年起為 ISO 所採用(ISO 8879),並且被廣泛地運用在各種大型的檔案計劃中,但是 SGML 是一種非常嚴謹的檔案描述法,導致過於龐大複雜(標準手冊就有 500 多頁),難以理解和學習,進而影響其推廣與應用。

同時 W3C 也發現到 HTML 的問題:

  • 不能解決所有解釋資料的問題 —— 像是影音檔或化學公式、音樂符號等其他形態的內容。

  • 效能問題 —— 需要下載整份檔案,才能開始對檔案做搜尋。

  • 擴充性、彈性、易讀性均不佳。

為了解決以上問題,專家們使用 SGML 精簡製作,並依照 HTML 的發展經驗,產生出一套使用上規則嚴謹,但是簡單的描述資料語言:XML。

XML 就是在一個這樣的背景下誕生的 —— 為了有一個更中立的方式,讓消費端自行決定要如何消化、呈現從服務端所提供的資訊。

<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE recipe PUBLIC "-//Happy-Monkey//DTD RecipeBook//EN""http://www.happy-monkey.net/recipebook/recipebook.dtd"><recipe><title>Peanutbutter On A Spoon</title><ingredientlist>    <ingredient>Peanutbutter</ingredient></ingredientlist><preparation>Stick a spoon in a jar of peanutbutter, scoopand pull out a big glob of peanutbutter.</preparation></recipe>

RecipeBook 的例子,一種基於 XML 語法的烹飪技術書刊。此標籤可轉換為:HTML, PDF 以及富文字格式並使用程式語言或 XSL。

XML 被廣泛用來作為跨平臺之間互動資料的形式,主要針對資料的內容,通過不同的格式化描述手段(XSLT,CSS 等)可以完成最終的形式表達(生成對應的 HTML、PDF 或者其他的檔案格式)。

XML 被設計用於傳送及攜帶資料資訊,不用來表現或展示資料,HTML 則用來表現資料,所以 XML 用途的焦點是它說明資料是什麼,以及攜帶資料資訊。

XML 由 3 個部分構成,它們分別是:文件型別定義(Document Type Definition, DTD),即 XML 的佈局語言;可擴充套件的樣式語言(Extensible Style Language, XSL),即 XML 的樣式表語言;以及可擴充套件連結語言(Extensible Link Language, XLL)。

XML 是一種元標記語言,即定義了用於定義其他特定領域有關語義的、結構化的標記語言,它提供了一種描述結構資料的格式,簡化了網路中資料交換和表示,使得程式碼、資料和表示分離,並作為資料交換的標準格式,因此它常被稱為智慧資料文件。從這方面來看,它和 JSON 都是一種資料交換格式。

除了執行 HTML 驗證之外,經典標記技術(例如內容模型語法)的更有用的應用是將通用 HTML 內容模型定製為用於更具體的內容型別(例如部落格文章)的語法。雖然這些技術是為 XHTML(HTML 的 XML 變體)設計的,但是在 XML 誕生 20 年之後,SGML 仍然是 HTML 中唯一能夠這樣做的標準化元語言。

對於 XML 的命運,我們或許不需要關心,畢竟它幕後的使用群體非常龐大,所以在很長一段時間內它都不會消失。

Happy birthday, XML!

XML 標準誕生 20 週年:這個世界,它無處不在原文請看這裡