明辉手游网中心:是一个免费提供流行视频软件教程、在线学习分享的学习平台!

XML 的Top 10特征(老實說,只有 7 點...)

[摘要]XML、XLink、Namespace、DTD、Schema、CSS、XHTML、... 如果你才剛開始接觸 XML,你可能會不知道從處何下手。 以下這十點摘要特性希望能夠為你捕捉足夠的基本概念,讓新手能夠概括地了解 XML 長得什麼樣子。如果你想要做關於 XML 的報告,為何不從這些要點開始呢?...
 
XML、XLink、Namespace、DTD、Schema、CSS、XHTML、... 如果你才剛開始接觸 XML,你可能會不知道從處何下手。 以下這十點摘要特性希望能夠為你捕捉足夠的基本概念,讓新手能夠概括地了解 XML 長得什麼樣子。如果你想要做關於 XML 的報告,為何不從這些要點開始呢?這些要點就是為此而摘錄出來給你用的。


--------------------------------------------------------------------------------

1. XML 是用純文字格式檔案來表現結構化資料的一種方法
什麼是 "結構化的資料"?就好比說:試算表、通訊錄、設定參數、財務交易、技術圖表等等。產生這些資料的程式都常也會把它們存在磁碟上,可能是用 binary 格式,也可能是用純文字格式。後者(如果必要的話)可以讓你直接看到裡面的資料,而不用透過原來產生這些資料的程式。XML 是一組由許多的規則(或是指導架構、協定,看你怎麼叫它)所組成的集合,可以用來設計這些資料的文字格式,而且依此格式定義出來的檔案可以很容易地(由電腦)產生及讀取,而且不會模稜兩可(unambiguous),不會導致一些常見的問題,例如:缺乏擴充性、缺乏對國際化/地區化(internationalization/localization)的支援、需依存於某個特定的平台等等。

2. XML 看起來有點像是 HTML,但它不是 HTML
XML 像 HTML 也使用 標籤 (被夾在 '<' 和 '>'之間的文字)和 屬性 (以 name="value" 這種格式出現),但 HTML 明確地定義出每一個標籤和屬性的意義(通常是表示夾在其中的文字在瀏覽器中該如何表示),而 XML 只是利用標籤來界定每一筆資料,至於如何去解譯這些資料則完全是應用程式的工作。換句話說,如果你在一個 XML 檔案中看到 "<p>" 這樣的一個標籤,不要直覺地想到:它代表的就是「段落(paragraph)」。依據各種情況,它有可能代表的是「價格(price)」、「參數(parameter)」、「人(person)」、「p...」(等一下,是誰規定它一定是代表以 "p" 開頭的字?)

3. XML 是純文字格式,但它不是給你直接讀的
正如我前面說的,XML 檔案是純文字格式的,但是比起 HTML,它更不是設計來給人類閱讀的。XML 之所以是純文字格式,是因為它要能讓專家們(例如程式員)能夠簡單地為應用程式除錯,而且在情況緊急的時候,也可以讓他們用簡單的文字編輯器去修改有問題的 XML 檔。但是 XML 檔的規則比 HTML 更加嚴格。只要漏掉一個標籤,或是少用了一個屬性,就有可能使得整個檔案作廢;若是有類似的情況發生在 HTML 檔案裡,通常都會被接受,或是頂多是容忍這樣的錯誤。在正式的 XML 規格書中有這樣子的規定:應用程式不被允許去嘗試猜測一個損毀的 XML 檔案的意義;一旦發現檔案損毀,應用程式必須立刻停止運作,並產生錯誤訊息。

4. XML 是一個由許多技術所構成的大家族
現在是有一份 XML 1.0,定義了 "標籤" 和 "屬性" 代表了什麼意義的規格書;但圍繞在 XML 1.0 周圍的,還有許多不斷出現的模組,針對各種不同的工作,提供了各種不同的標籤和屬性或是指導架構。例如: Xlink (至 1999 年 11 為止仍在發展中)是用來描述一種在 XML 檔案中加入超鍊結的標準方法。 XPointer 和 XFragments (也是仍在發展中)是用來指向 XML 文件中某一部份的語法。(Xpointer 有一點像是 URL,但它所指向的不是 Web 上的文件,而是在 XML 檔案中的一部份資料。) CSS,文件樣式語言,在 XML 上使用和在 HTML 上一樣合用。 XSL (1999 年 8 月)是用來表達文件樣式更 進階的語言。它以 XSLT(一種通常在 XSL 能力所不及範圍中非常好用的轉換語言)為基礎,用來加入或刪除標籤和屬性。 DOM 是一組標準的函式呼叫,可供程式語言去操控 XML(以及 HTML)檔案。 XML 命名空間(Namespaces) 是一種用來描述在一份 XML 文件中,你要怎麼讓每一個單獨的標籤和屬性能夠關聯到一個 URL 上面的規格書。不過這個 URL 要做什麼用是由讀取它的應用程式來決定的。(RDF,W3C 的中介資料(metadata)標準,就是利用它讓每一個中介資料連結到定義這個資料的型態的檔案上。) XML Schemas 1 和 2 幫助開發人員精確地定義他們以 XML 為基礎所制定的檔案格式。除此之外,還有更多的模組和工具已經可以利用或正在發展中。請密切注意 W3C 的技術報告網頁。

5. XML 的累贅稍多,但那不是個問題
因為 XML 是純文字格式的,而且它利用標籤去分格資料,所以 XML 的檔案幾乎是一定會比相對應的 binary 格式來等大。這是 XML 的發展人員刻意的抉擇。純文字格式的好處非常明顯(詳見第 3 點),而其缺點能在各種不同的層次獲得彌補。磁碟空間的成本不再和以往一般昂貴了,而且類似 zip 和 gzip 等的壓縮程式也都非常成熟且有效率。這些程幾乎在所有的平台上都能找到(而且經常是免費的)。此外,諸如數據機協定及 HTTP/1.1(Web 的核心協定)等的通訊協定都能即時地壓縮資料,因此能和 binary 格式一樣有效地節省頻寬。

6. XML 很新,但也沒有那麼新
XML 的發展是從 1996 年開始的,而從 1998 二月開始成為 W3C 的標準——你可能會懷疑它是個不夠成熟的技術。但事實上,這不是個非常新的技術。 XML 的前身是 SGML,從 80 年代初期就開始發展了,自 1986 年起成為 ISO 的標準,而且被廣泛地運用在各種大型的文件計畫中。當然還有 HTML,它是從 1990 年開始發展的。XML 的設計者只是將 SGML 最精華的部份萃取出來,再依照 HTML 的發展經驗,產生出一套威力不亞於 SGML,而且使用上非常規則且簡單的語言。有些演進,甚至已經和革命性的劇烈變動難以分別... 我們必須強調:SGML 通常只被用在技術文件上,其他的資料甚少利用它;而 XML 則正好是相對的。

7, 8, 9...
是一些我還不知道的東西。

10. XML is license-free, platform-independent and well-supported 10. XML 是沒有版權限制、沒有平台限制,而且支援良好的
當你選擇了 XML 成為你計畫的基礎,你等於是認同了一個龐大且不斷成長,擁有大量工具(很可能其中一個正是你所需要的!)及對這項技術經驗老道的工程師。決定選用 XML 有點像是選用 SQL 當成你資料庫的基礎:你還是得建立你自已的資料庫和處理它的程式或程序,但已經有許多現成的工具和人力可以幫助你。而且因為 XML,和其他 W3C 的技術一樣,是沒有版權限制的,所以你可以根據它建構你自已的軟體,而不用付給別人半毛錢。又因為它所擁有的支援越來越多,所以你不會被單一的廠商綁死。 XML 不見得永遠都是最好的解決方案,但它永遠絕對值得你去評估考慮。



--------------------------------------------------------------------------------

Bert Bos
Created 27 Mar 1999 (last update: $Date: 2000/03/09 10:42:42 $)
中文版:羅其鈞 (Kenneth Luo)
最後更新日期:2000/4/26 10:29PM