XML 是一種用來表示結構化資訊的標準方式,不但可方便電腦處理,同時能讓開發人員與讀者輕鬆撰寫與瞭解。XML 是可擴展標記語言 (eXtensible Markup Language) 的縮寫。XML 標準可以在
www.w3.org/XML/
上找到。
XML 針對資料提供了一項標準且方便的分類方式,讓使用者輕鬆讀取、存取與操作。XML 採用樹狀結構及與 HTML 類似的標籤結構。下列是一則簡易的 XML 資料範例:
<song>
<title>What you know?</title>
<artist>Steve and the flubberblubs</artist>
<year>1989</year>
<lastplayed>2006-10-17-08:31</lastplayed>
</song>
XML 資料也可能因為巢狀式標籤結構,以及一些特質及其它結構組件而變得更複雜。下列是一則較為複雜的 XML 資料範例:
<album>
<title>Questions, unanswered</title>
<artist>Steve and the flubberblubs</artist>
<year>1989</year>
<tracks>
<song tracknumber="1" length="4:05">
<title>What do you know?</title>
<artist>Steve and the flubberblubs</artist>
<lastplayed>2006-10-17-08:31</lastplayed>
</song>
<song tracknumber="2" length="3:45">
<title>Who do you know?</title>
<artist>Steve and the flubberblubs</artist>
<lastplayed>2006-10-17-08:35</lastplayed>
</song>
<song tracknumber="3" length="5:14">
<title>When do you know?</title>
<artist>Steve and the flubberblubs</artist>
<lastplayed>2006-10-17-08:39</lastplayed>
</song>
<song tracknumber="4" length="4:19">
<title>Do you know?</title>
<artist>Steve and the flubberblubs</artist>
<lastplayed>2006-10-17-08:44</lastplayed>
</song>
</tracks>
</album>
請注意,這個 XML 文件不但包含了其它完整的 XML 結構 (例如
song
標籤及其子系),同時示範了其它 XML 結構,例如一些特質 (
song
標籤中的
tracknumber
與
length
),以及一些包含其它標籤,而非包含資料 (例如
tracks
標籤) 的標籤。
XML 快速入門
如果您對 XML 僅有少許經驗,或是第一次使用,下列常見的 XML 資料簡報可供您參考。XML 資料是以純文字形式所撰寫,所使用的特殊語法可將資訊組織為結構化格式。一組 XML 資料通常稱為「XML 文件」。在 XML 格式裡,資料將透過階層結構分為各種「元素」(可能是單一資料項目或是其它元素的容器) 來加以組織。每一個 XML 文件都具有一個做為上層或主要項目的單一元素;在此根元素之內,可能會存在單一資訊,但是也很可能存在其它元素,且這些元素下層又會包含其它元素,以此類推。例如,這個 XML 文件就包含了音樂專輯的相關資訊:
<song tracknumber="1" length="4:05">
<title>What do you know?</title>
<artist>Steve and the flubberblubs</artist>
<mood>Happy</mood>
<lastplayed>2006-10-17-08:31</lastplayed>
</song>
每個元素都可由一組「標籤」來辨別,也就是將元素名稱包含在角括弧 (小於和大於符號) 之內。開頭的標籤代表元素的開始,內含元素名稱:
<title>
結束的標籤代表元素的結尾,內含正斜線加上元素名稱:
</title>
如果元素未包含任何內容,則可以寫成空白元素 (亦稱為自我結束元素)。在 XML 中,下列元素:
<lastplayed/>
與下列元素相似:
<lastplayed></lastplayed>
除了元素的內容會包含在開頭與結尾標籤之內以外,元素同時能夠包含其它稱為「特質」的值 (在元素的開頭標籤中定義)。例如,下列 XML 元素會定義名為
length
的單一特質,其值為
"4:19"
:
<song length="4:19"></song>
每個 XML 元素都會包含內容,內容有可能是單一數值、一或多個 XML 元素,或是無 (表示為空白元素)。
深入瞭解 XML
若要深入瞭解使用 XML 的方式,可以參考其它一些書籍及資源,包括下列網站:
用來使用 XML 的 ActionScript 類別
ActionScript 3.0 包含好幾種可用來使用 XML 結構資訊的類別。下列是兩大主要類別:
-
XML:代表單一 XML 元素,可能是包含多個子系的 XML 文件,或是文件內具有單一值的元素。
-
XMLList:代表一組 XML 元素。當存在多個 XML 元素「旁系」(位於 XML 文件階層架構中的相同階層,且由相同的父系所包含) 時,就會用到 XMLList 物件。對實體來說,要處理此類 XML 元素集合時 (假定包含在 XML 文件中),使用 XMLList 實體將是最簡便的方式:
<artist type="composer">Fred Wilson</artist>
<artist type="conductor">James Schmidt</artist>
<artist type="soloist">Susan Harriet Thurndon</artist>
若要納入 XML 命名空間做進階應用,則 ActionScript 亦能包含 Namespace 與 QName 類別。如需詳細資訊,請參閱
使用 XML 命名空間
。
除了使用 XML 時內建的類別之外,ActionScript 3.0 同時包含了好幾個運算子,特別針對您在存取與操作 XML 資料時所需而提供。利用這些類別與運算子來使用 XML 的方式我們稱為 ECMAScript for XML (E4X),是由 ECMA-357 第 2 版規格所定義。
重要概念與術語
下列參考清單包含程式設計 XML 處理常式時會碰到的重要術語:
-
元素
-
XML 文件中的單一項目,也就是開頭標籤與結尾標籤之間所包含的內容 (包括標籤本身)。XML 元素可以包含文字資料或其它元素,也可以空白。
-
空白元素
-
不包含任何子元素的 XML 元素。空白元素通常以自我結束標籤 (例如
<element/>
) 來代表。
-
文件
-
單一 XML 結構。XML 文件可以包含任何數量的元素 (或是僅包含單一空白元素);然而,XML 文件必須具有單一上層元素,其中包含文件中的所有其它元素。
-
節點
-
XML 元素的別名。
-
特質
-
與元素相關聯的具名值,並以
attributename="value"
格式寫在元素的開頭標籤中,而不是寫成套疊在元素內的個別子元素。