XML 簡介 Rick Jelliffe 撰 張錦堂 譯 1999 年 6 月 5 日 XML 是「可擴展標示語言」(eXtensible Markup Language) 的縮寫。 XML 規格是由『全球資訊網標準製定組織』 (W3C) 制定,並於 1998 年 2 月 成為推薦規格。目前已有許多家廠商採用,且視為關鍵性技術。 例如:Adobe,IBM,微軟,Netscape,Oracle,Sun 及這個領域中的重要 廠商。目前許多的新版的軟體,例如:Navigator,Internet Explorer 及 RealPlayer,都已經在軟體內部使用 XML 的技術了。 XML 的成功是肇因於下列幾項簡單的因素: •當電腦都連接在網路上時,這些電腦就經常需要互傳訊息以便完成工作; •這些資料必須轉換為一長串的形式,稱為串列化格式 (serialized),因為網路 上的資料是以串列的方式傳輸的; •接收端的電腦必須要能解讀這些串列式資料的格式; •使用一個標準的格式,可以使系統發展者不用費心設計資料交換的格式,而把 精力專注於更重要的問題上,例如:什麼是這個系統所需的資料結構、資料的 類別及其意義、系統如何運用這些資料。 因此我們可將 XML 稱之為運用於 WWW 上,將資料串列化的標準格式。 XML 提供 了串列化資料所必須注意的各項議題的解決方案: •資料是使用什麼字集及編碼方式呢 ? •格式的語法 ? •格式中標示的命名規則及有效範圍 ? •資料中包含了那些結構:清單、表格、樹狀或網狀呢 ? •每個元素中有那些屬性呢 ? •元素中的資料使用什麼語言或特別的記號格式呢 ? 事實上,XML 能夠成功的原因是,它是唯一能將資料串列化的標準格式 ! 另一個 嚴謹的解決方案是 ISO 的 ASN.1 (Abstract Syntax Notation 1); 但是 ASN.1 是二進位的格式; 而 XML 是文字形態的格式,因此您可以使用每部電腦上都有的 文字編輯程式建立及修改 XML 文件。 XML 是 SGML (ISO 的標準通用標示語言,ISO 8879:1986 及其 1997 WebSGML 附件 Annexes J、K 及 L) 的簡化版本。SGML 系統是非常複雜的,因為它具有許多的機制, 以便提供各種的語法。SGML 是被發展用來解決編輯及保存內容龐大複雜而且互相 連結的技術文件。而 XML 只取用 SGML 系統中的文件結構的核心部份。 XML 規格制定的初衷是為了簡化程式設計的因難度。目前大約有二十個不同程式語言 所撰寫的剖析程式(Parser) 可以公開的取得。假如您要設計在 WWW 中互傳資料的 系統,或是要儲存系統的設定檔,您可以考慮採用 XML。優點是您可以取得許多免費 的工具來檢查或編輯您的 XML 文件: 其中許多的工具可以讀入 XML 檔,然後以樹狀 方式顯示,同時也可修改元素結構及內容。 更進一步,目前已經有許多以 XML 為基礎的標示語言可以使用了: •MathML 是供數學使用的標示語言: 一些重要的數學編輯程式目前巳經開始支援讀取 及寫出 MathML 的格式,預期五年內會大幅的取代 TeX; •XHTML 是較 HTML 4.0 更新的提議中的規格,使用較為嚴格的 XML 語法:大多數的 瀏覽器已經可以接受 XHTML 格式的資料了;較嚴格的語法使得使用 Web 環境的 個人數位助理 (PDA) 更容易設計及使用; •資源描述架構 (Resource Description Framework, RDF) 使得 WWW 上的資源可以 確切的進行交換:例如,Red Had 版本的 Linux 中的套裝軟體管理程式 (Package Manager) 就使用 RDF 進行自動軟體升級; •無線電標示語言 (Wireless Markup Language, WML) 是一種經過壓縮的 XML,使得 資料可以送到無線電話; •CommerceNet 是一些主要的軟體廠商與貿易公司所組成的組織。這個組織正在發展 一系列的文件類別定義 (DTD) 供電子商務使用; 整體來看,XML 是供電子商務,資料交換及物流系統整合的一個成本較低的解決方案。 以一個虛構的食譜為例,這個食譜可以經由 Internet 傳送到不同的應用系統: •一個 XML 瀏覽器可以用樣式表編排顯示出食譜; •一個互動式電子化技術文件系統 (Interactive Electronic Technical Manual, IETM) 可以將食譜轉換為許多頁的資料,以保證每個步驟都確切的執行; •一個自動的烹飪機器人可以遵循指令進行烹調,這些指令是存放在 robot 的屬性中; •一個動態模擬系統可以遵循 robot 屬性中的指令,示範烹調的過程; •至少可以使用文字瀏覽程式直接顯示內容; 甜壁虎湯 Rick Jelliffe 將烤箱預熱到 200 度 將一公斤的糖倒碗中 加一公升的熱開水攪拌一分鐘 加入一隻壁虎 重覆前二個步驟十次 配紅酒一同食用 在這個例子中,重點是了解其中所有的元素及屬性名稱都是由使用者自行定義的: recipe, DC:TITLE, DC:AUTHOR, step, robot, repeat。XML 只是提供基本的語法, 使得使用者可以用來表示資料的結構。簡單的說,XML 是一個最基層的層次,就像 網路的層次性技術中的同軸電纜、乙太網路、IP、TCP,這樣就可以建立起非常複雜 而且功能強大的系統了。 讀者若想獲得更多的相關資訊,請參考 Chinese XML Now ! 的網站, 其網址為 http://www.ascc.net/xml/,而本文的英文版原稿的網址為 http://www.ascc.net/xml/en/utf-8/xml.html