第二章XML概念
導言
經過第一章的快速入門學習,你已經知道了XML是一種能夠讓你自己創造標識的語言,它可以將數據與格式從網頁中分開,它可以儲存數據和共享數據的特性使得XML無所不能。如果你希望深入學習XML,系統掌握XML的來龍去脈,那我們首先還是要回到XML概念的問題。 XML(Extensible Markup Language),一種擴展性標識語言。 "擴展性""標識""語言"。每一個字都明確的點明了XML的重要特徵和功能。讓我們來仔細分析:
一. 擴展性二. 標識三. 語言四.結構化五. Meta資料六. 顯示七. DOM
一.擴展性---使用XML,你可以為你的文檔建立自己的標記( tags)。
XML的第一個字是"擴充性",這正是XML強大的功能和彈性的原因。
在HTML裡,有許多固定的標記,我們必須記得然後使用它們,你不能使用HTML規範裡沒有的標記。而在XML中,你能建立任何你需要的標記。你可以充分發揮你的想像力,給你的文件起一些好記的標記名稱。例如,你的文件包含一些遊戲的攻略,你可以建立一個名為<game>的標記,然後在<game>下再依照遊戲類別建立<RPG>,<SLG>等標記。只要清晰,易於理解你可以建立任何數量的標記。
一開始你也許會不適應,因為我們在學習HTML時,有固定的標記可以直接學習和使用;(很多人包括我自己都是邊分析別人的程式碼和標識,邊建立自己的網頁),而XML卻沒有任何標記可以學,也很少有文檔的標記是一模一樣的。我們怎麼辦?呵呵,沒有就自己創建呀。一旦你真正開始寫XML文檔,你會發現隨心所欲的創造新標記也是一份有趣的事。你可以建立有自己特色的標記,甚至建立自己的HTML語言。
擴展性使你有更多的選擇和強大的能力,但同時也產生一個問題就是你必須學會規劃。你自己要理解自己的文檔,知道它由哪幾部分組成,相互之間的關係和如何識別它們。
關於建立標識還需要說明一點,標識是描述資料的類型或特性,例如<width>,年齡<age>,姓名<name>等,而不是資料的內容,例如:<10pxl>,<18>,<張三>,這些都是無用的標記。如果你學過資料庫,你可以這樣理解,標識就是一種字段名。
二.標識---使用XML你可以辨識文檔中的元素。
XML的第二個字是"標識",這顯示了XML的目的是標識文件中的元素。
不論你是HTML,還是XML,標識的本質在於便於理解,如果沒有標識,你的文檔在計算機看來只是一個很長的字符串,每個字看起來都一樣,沒有重點之分。
透過標識,你的文件便於閱讀和理解,你可以劃分段落,列明標題。 XML中,你更可以利用其擴充性來為文件建立更合適的標識。
不過,有一點要提醒大家注意:標識只是用來辨識訊息,它本身並沒有傳達訊息。例如這樣的HTML程式碼:
<b>frist step<b>
這裡<b>表示粗體,只用來說明是用粗體來顯示"frist step"字符,<b>本身並不包含任何實際的信息,在頁面上你看不到<b>,真正傳達信息的是"frist step "。
三.語言---使用XML你要遵循特定的語法來識別你的文件。
XML第三個字是"語言"。這顯示了作為一種語言XML必須遵循一定的規則。雖然XML的擴展性允許你創建新標識,但它仍然必須遵循特定的結構,語法和明確的定義。
在電腦領域,語言常表示一?quot;程式語言",用來程式實作一些功能和應用,但不是所有的"語言"都是用來程式設計的,XML就只是一種用來定義標識和描述訊息的語言
。慢慢
領會
。
,就像寫文章先寫一個提綱
。
1.每一部分(每一個元素)都和其他元素有關聯。關聯的級數就形成了結構。
2.標識本身的意義與它所描述的資訊相分離。
我們來看一個簡單的例子幫助理解:
<?xml version="1.0" encoding="GB2312"?>
<myfile>
<title>XML輕鬆學習手冊</title>
<chapter>XML快速入門
<para>什麼是XML</para>
<para>使用XML的好處</para>
</chapter>
<chapter>XML的概念
<para>擴充性</para>
<para>標識</para>
</chapter>
</myfile>
這是本文的XML描述文檔,可以看到標識分三級關聯,非常清晰:
<myfile>
<chapter>
<para>
…
</para>
</chapter>
</myfile>
上面這樣的文檔結構,我們稱之為"文檔樹",主幹是父元素,如<myfile>,分支和頁是子元素,如<chapter>和<para>。
五.Meta資料(Metadata)---專業的XML使用者會使用meta資料來運作。
在HTML中我們知道可以使用meta標識來定義網頁的關鍵字,簡介等,這些標識不會顯示在網頁中,但可以被搜尋引擎搜尋到,並影響搜尋結果的排列順序。
XML對這原理進行了深化和擴展,用XML,你可以描述你的資訊在哪裡,你可以透過meta來驗證訊息,執行搜索,強制顯示,或處理其他的資料。
以下是一些XML metadata在實際應用中的用途:
1.可以驗證數位簽名,使線上商務的提交動作(submission)有效。
2.可以被方便的建立索引和進行更有效搜尋。
3.可以在不同語言之間傳輸資料。
W3C組織正在研究一種名為RDF(Resource Description Framework)的metadata處理方法,可以自動交換信息,W3C宣稱,使用RDF配合數字簽名,將使網絡中存在"真實可信"的電子商務。
六.顯示
單獨用XMl不能顯示頁面,我們使用格式化技術,例如CSS或XSL,才能顯示XML標記所建立的文件。
我們在前面第一章講到XML是將資料和格式分開的。 XML文件本身不知道如何來顯示,必須有輔助文件來幫助實現。 (XML取消了所有標識,包括font,color,p等風格樣式定義標識,因此XML全部是採用類似DHTML中CSS的方法來定義文檔風格樣式。),XML中用來設定顯示風格樣式的文件類型有:
1.XSL
XSL全名為Extensible Stylesheet Language(可擴展樣式語言), 是將來設計XML文件顯示樣式的主要文件類型。它本身也是基於XML語言的。使用XSL,你可以靈活的設定文件顯示樣式,文件將自動適應任何瀏覽器和PDA(掌上電腦)。
XSL也可以將XML轉換為HTML,那樣,舊的瀏覽器也可以瀏覽XML文件了。
2.CSS
CSS大家都很熟悉了,全名是Cascading Style Sheets(層疊樣式表),是目前用來在瀏覽器上顯示XML文件的主要方法。
3.Behaviors
Behaviors現在還沒有成為標準。它是微軟的IE瀏覽器特有的功能,用它可以為XML標識設定一些有趣動作。
七.DOM
DOM全名為document object model(文檔物件模型),DOM是用來幹嘛的呢?假設把你的文件看成一個單獨的對象,DOM就是如何用HTML或XML對這個對象進行操作和控制的標準。
物件導向的思想方法已經非常流行了,在程式語言(例如java,js)中,都運用物件導向的程式設計思想。在XML中,就是要將網頁也當作一個物件來操作和控制,我們可以建立自己的物件和模板。與對象進行交流,如何命令對象,就要用到API。 API全名為Application Programming Interface,它是存取和操作物件的規則。而DOM就是詳細描述HTML/XML文件物件規則的API。它規定了HTML/XML文件物件的命名協定,程序模型,溝通規則等。在XML文件中,我們可以將每一個識別元素看成一個物件---它有自己的名稱和屬性。
XML創建了標識,而DOM的作用是告訴script如何在瀏覽器視窗中操作和顯示這些標識
上面我們已經簡要的講述了一些XML的基本原理,我們來看看它們之間的關聯以及它們是如何工作的,先看這裡一張圖:
1.XML描述資料類型。例如:"King lear"是一個標題元素;
2.CSS儲存並控制元素的顯示樣式。例如:標題將以18pt字體顯示
3.script腳本控制元素如何動作。例如:當一個title元素"out of stock",將會以紅色顯示。
4.DOM則為腳本和物件的交流提供一個公共平台,並將結果顯示在瀏覽器視窗中。
如果任何一個部分發生錯誤,都不會得到正確結果。
好了,看到這裡,我們已經對XML是如何運作的有一個整體的大致的概念。透過這一章的學習,我們可能感覺到XML似乎更偏向資料處理,更方便程式設計師學習。實際情況也是這樣的,XML設計的目的就是用來方便的共享和互動資料的。下一章,我們將系統的了解關於XML的各種術語。歡迎您繼續瀏覽。