XML 的Top 10特征(老實(shí)說,只有 7 點(diǎn)...)
發(fā)表時(shí)間:2024-06-18 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]XML、XLink、Namespace、DTD、Schema、CSS、XHTML、... 如果你才剛開始接觸 XML,你可能會不知道從處何下手。 以下這十點(diǎn)摘要特性希望能夠?yàn)槟悴蹲阶銐虻幕靖拍,讓新手能夠概括地了?XML 長得什麼樣子。如果你想要做關(guān)於 XML 的報(bào)告,為何不從這些要點(diǎn)開始呢?...
XML、XLink、Namespace、DTD、Schema、CSS、XHTML、... 如果你才剛開始接觸 XML,你可能會不知道從處何下手。 以下這十點(diǎn)摘要特性希望能夠?yàn)槟悴蹲阶銐虻幕靖拍,讓新手能夠概括地了?XML 長得什麼樣子。如果你想要做關(guān)於 XML 的報(bào)告,為何不從這些要點(diǎn)開始呢?這些要點(diǎn)就是為此而摘錄出來給你用的。
--------------------------------------------------------------------------------
1. XML 是用純文字格式檔案來表現(xiàn)結(jié)構(gòu)化資料的一種方法
什麼是 "結(jié)構(gòu)化的資料"?就好比說:試算表、通訊錄、設(shè)定參數(shù)、財(cái)務(wù)交易、技術(shù)圖表等等。產(chǎn)生這些資料的程式都常也會把它們存在磁碟上,可能是用 binary 格式,也可能是用純文字格式。後者(如果必要的話)可以讓你直接看到裡面的資料,而不用透過原來產(chǎn)生這些資料的程式。XML 是一組由許多的規(guī)則(或是指導(dǎo)架構(gòu)、協(xié)定,看你怎麼叫它)所組成的集合,可以用來設(shè)計(jì)這些資料的文字格式,而且依此格式定義出來的檔案可以很容易地(由電腦)產(chǎn)生及讀取,而且不會模稜兩可(unambiguous),不會導(dǎo)致一些常見的問題,例如:缺乏擴(kuò)充性、缺乏對國際化/地區(qū)化(internationalization/localization)的支援、需依存於某個(gè)特定的平臺等等。
2. XML 看起來有點(diǎn)像是 HTML,但它不是 HTML
XML 像 HTML 也使用 標(biāo)籤 (被夾在 '<' 和 '>'之間的文字)和 屬性 (以 name="value" 這種格式出現(xiàn)),但 HTML 明確地定義出每一個(gè)標(biāo)籤和屬性的意義(通常是表示夾在其中的文字在瀏覽器中該如何表示),而 XML 只是利用標(biāo)籤來界定每一筆資料,至於如何去解譯這些資料則完全是應(yīng)用程式的工作。換句話說,如果你在一個(gè) XML 檔案中看到 "<p>" 這樣的一個(gè)標(biāo)籤,不要直覺地想到:它代表的就是「段落(paragraph)」。依據(jù)各種情況,它有可能代表的是「價(jià)格(price)」、「參數(shù)(parameter)」、「人(person)」、「p...」(等一下,是誰規(guī)定它一定是代表以 "p" 開頭的字?)
3. XML 是純文字格式,但它不是給你直接讀的
正如我前面說的,XML 檔案是純文字格式的,但是比起 HTML,它更不是設(shè)計(jì)來給人類閱讀的。XML 之所以是純文字格式,是因?yàn)樗茏寣<覀儯ɡ绯淌絾T)能夠簡單地為應(yīng)用程式除錯(cuò),而且在情況緊急的時(shí)候,也可以讓他們用簡單的文字編輯器去修改有問題的 XML 檔。但是 XML 檔的規(guī)則比 HTML 更加嚴(yán)格。只要漏掉一個(gè)標(biāo)籤,或是少用了一個(gè)屬性,就有可能使得整個(gè)檔案作廢;若是有類似的情況發(fā)生在 HTML 檔案裡,通常都會被接受,或是頂多是容忍這樣的錯(cuò)誤。在正式的 XML 規(guī)格書中有這樣子的規(guī)定:應(yīng)用程式不被允許去嘗試猜測一個(gè)損毀的 XML 檔案的意義;一旦發(fā)現(xiàn)檔案損毀,應(yīng)用程式必須立刻停止運(yùn)作,並產(chǎn)生錯(cuò)誤訊息。
4. XML 是一個(gè)由許多技術(shù)所構(gòu)成的大家族
現(xiàn)在是有一份 XML 1.0,定義了 "標(biāo)籤" 和 "屬性" 代表了什麼意義的規(guī)格書;但圍繞在 XML 1.0 周圍的,還有許多不斷出現(xiàn)的模組,針對各種不同的工作,提供了各種不同的標(biāo)籤和屬性或是指導(dǎo)架構(gòu)。例如: Xlink (至 1999 年 11 為止仍在發(fā)展中)是用來描述一種在 XML 檔案中加入超鍊結(jié)的標(biāo)準(zhǔn)方法。 XPointer 和 XFragments (也是仍在發(fā)展中)是用來指向 XML 文件中某一部份的語法。(Xpointer 有一點(diǎn)像是 URL,但它所指向的不是 Web 上的文件,而是在 XML 檔案中的一部份資料。) CSS,文件樣式語言,在 XML 上使用和在 HTML 上一樣合用。 XSL (1999 年 8 月)是用來表達(dá)文件樣式更 進(jìn)階的語言。它以 XSLT(一種通常在 XSL 能力所不及範(fàn)圍中非常好用的轉(zhuǎn)換語言)為基礎(chǔ),用來加入或刪除標(biāo)籤和屬性。 DOM 是一組標(biāo)準(zhǔn)的函式呼叫,可供程式語言去操控 XML(以及 HTML)檔案。 XML 命名空間(Namespaces) 是一種用來描述在一份 XML 文件中,你要怎麼讓每一個(gè)單獨(dú)的標(biāo)籤和屬性能夠關(guān)聯(lián)到一個(gè) URL 上面的規(guī)格書。不過這個(gè) URL 要做什麼用是由讀取它的應(yīng)用程式來決定的。(RDF,W3C 的中介資料(metadata)標(biāo)準(zhǔn),就是利用它讓每一個(gè)中介資料連結(jié)到定義這個(gè)資料的型態(tài)的檔案上。) XML Schemas 1 和 2 幫助開發(fā)人員精確地定義他們以 XML 為基礎(chǔ)所制定的檔案格式。除此之外,還有更多的模組和工具已經(jīng)可以利用或正在發(fā)展中。請密切注意 W3C 的技術(shù)報(bào)告網(wǎng)頁。
5. XML 的累贅稍多,但那不是個(gè)問題
因?yàn)?XML 是純文字格式的,而且它利用標(biāo)籤去分格資料,所以 XML 的檔案幾乎是一定會比相對應(yīng)的 binary 格式來等大。這是 XML 的發(fā)展人員刻意的抉擇。純文字格式的好處非常明顯(詳見第 3 點(diǎn)),而其缺點(diǎn)能在各種不同的層次獲得彌補(bǔ)。磁碟空間的成本不再和以往一般昂貴了,而且類似 zip 和 gzip 等的壓縮程式也都非常成熟且有效率。這些程幾乎在所有的平臺上都能找到(而且經(jīng)常是免費(fèi)的)。此外,諸如數(shù)據(jù)機(jī)協(xié)定及 HTTP/1.1(Web 的核心協(xié)定)等的通訊協(xié)定都能即時(shí)地壓縮資料,因此能和 binary 格式一樣有效地節(jié)省頻寬。
6. XML 很新,但也沒有那麼新
XML 的發(fā)展是從 1996 年開始的,而從 1998 二月開始成為 W3C 的標(biāo)準(zhǔn)——你可能會懷疑它是個(gè)不夠成熟的技術(shù)。但事實(shí)上,這不是個(gè)非常新的技術(shù)。 XML 的前身是 SGML,從 80 年代初期就開始發(fā)展了,自 1986 年起成為 ISO 的標(biāo)準(zhǔn),而且被廣泛地運(yùn)用在各種大型的文件計(jì)畫中。當(dāng)然還有 HTML,它是從 1990 年開始發(fā)展的。XML 的設(shè)計(jì)者只是將 SGML 最精華的部份萃取出來,再依照 HTML 的發(fā)展經(jīng)驗(yàn),產(chǎn)生出一套威力不亞於 SGML,而且使用上非常規(guī)則且簡單的語言。有些演進(jìn),甚至已經(jīng)和革命性的劇烈變動難以分別... 我們必須強(qiáng)調(diào):SGML 通常只被用在技術(shù)文件上,其他的資料甚少利用它;而 XML 則正好是相對的。
7, 8, 9...
是一些我還不知道的東西。
10. XML is license-free, platform-independent and well-supported 10. XML 是沒有版權(quán)限制、沒有平臺限制,而且支援良好的
當(dāng)你選擇了 XML 成為你計(jì)畫的基礎(chǔ),你等於是認(rèn)同了一個(gè)龐大且不斷成長,擁有大量工具(很可能其中一個(gè)正是你所需要的!)及對這項(xiàng)技術(shù)經(jīng)驗(yàn)老道的工程師。決定選用 XML 有點(diǎn)像是選用 SQL 當(dāng)成你資料庫的基礎(chǔ):你還是得建立你自已的資料庫和處理它的程式或程序,但已經(jīng)有許多現(xiàn)成的工具和人力可以幫助你。而且因?yàn)?XML,和其他 W3C 的技術(shù)一樣,是沒有版權(quán)限制的,所以你可以根據(jù)它建構(gòu)你自已的軟體,而不用付給別人半毛錢。又因?yàn)樗鶕碛械闹г絹碓蕉,所以你不會被單一的廠商綁死。 XML 不見得永遠(yuǎn)都是最好的解決方案,但它永遠(yuǎn)絕對值得你去評估考慮。
--------------------------------------------------------------------------------
Bert Bos
Created 27 Mar 1999 (last update: $Date: 2000/03/09 10:42:42 $)
中文版:羅其鈞 (Kenneth Luo)
最後更新日期:2000/4/26 10:29PM