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 標籤中的 tracknumberlength),以及一些包含其它標籤,而非包含資料 (例如 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" 格式寫在元素的開頭標籤中,而不是寫成套疊在元素內的個別子元素。