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 タグなど)。この例ではまた、属性( song タグ内の tracknumber および length )など他の XML 構造や、データではなく他のタグを含むタグ( 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 エレメントでは値 4:19 を持つ length という名前の単一の属性を定義しています。

<song length="4:19"></song>

各 XML エレメントには、単一の値、1 つ以上の XML エレメント、または空(空のエレメント)のいずれかであるコンテンツが含まれます。

XML の詳細について

次の Web サイトを含めて、XML の詳細について学習する場合に役立つ数多くの書籍および資料が存在します。

XML を操作するための ActionScript クラス

ActionScript 3.0 には、XML 構造化情報を操作するためのクラスがいくつか含まれています。 次に、2 つのメインクラスを示します。

  • XML : 単一の XML エレメント。複数の子エレメントまたはドキュメント内に単一値のエレメントを持つ XML ドキュメント。

  • XMLList : XML エレメントセット。 兄弟エレメント(XML ドキュメント階層で同じレベルにあり、同じ親に含まれているエレメント)である複数の XML エレメントが存在する場合、XMLList オブジェクトが使用されます。例えば XMLList インスタンスは、こうした XML エレメントセット(おそらく XML ドキュメントに含まれます)を操作するための最も容易な手段として使用できます。

    <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 Edition 2 仕様により定義されています。

重要な概念と用語

次の参照リストに、XML 処理ルーチンのプログラミングで使用される重要な用語を示します。

エレメント
XML ドキュメント内の単一アイテム。開始タグと終了タグ(タグも含みます)の間にあるコンテンツにより識別されます。XML エレメントには、テキストデータ、その他のエレメントを含めることができます。また、空であってもかまいません。

空のエレメント
子エレメントを含まない XML エレメント。空のエレメントは、自己終了タグ( <element/> など)として記述されることがよくあります。

ドキュメント
単一の XML 構造。XML ドキュメントには、任意の数のエレメントを含めることができます(また、単一の空のエレメントのみで構成することもできます)。ただし、XML ドキュメントには、ドキュメント内の他のすべてのエレメントを含む単一の最上位エレメントが存在する必要があります。

ノード
XML エレメントの別名。

属性
エレメント内部にネストする個別の子エレメントとしてではなく、 attributename="value" の形式でエレメントの開始タグに記述されるエレメントに関連する名前付き値。