XML 的基本概念

Flash Player 9 以及更新的版本,Adobe AIR 1.0 以及更新的版本

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" 格式寫在元素的開頭標籤中,而不是寫成套疊在元素內的個別子元素。