タグと要素

今回は、前回作成した下記XML文書について、ひとつずつ詳しく見ていきます。

<?xml version="1.0" encoding="UTF-8" ?>
<ゲーム所持リスト>
  <ゲーム情報>
    <管理コード>0001</管理コード>
    <ゲームタイトル>DARK SOULS Ⅱ</ゲームタイトル>
    <購入日>2013/3/14</購入日>
    <購入価格>4000</購入価格>
  </ゲーム情報>
  <ゲーム情報>
    <管理コード>0002</管理コード>
    <ゲームタイトル>モンスターハンター4G</ゲームタイトル>
    <購入日>2014/10/11</購入日>
    <購入価格>5800</購入価格>
  </ゲーム情報>
  <ゲーム情報>
    <管理コード>0003</管理コード>
    <ゲームタイトル>ドラゴンクエストヒーローズ 闇竜と世界樹の城</ゲームタイトル>
    <購入日>2015/2/26</購入日>
    <購入価格>5800</購入価格>
  </ゲーム情報>
</ゲーム所持リスト>

XML文書の構成

ここで記述しているXML文書は「整形式のXML文書」と呼ばれます。表面的な形式だけが整えられた最も簡単なXML文書になります。(具体的に言うと「DTDに関する情報を記述しないもの」が整形式となります。詳細は別ページで記載します。)

整形式XML文書の構成は下図のようになります。
XML構成図

まずは、バージョンと文字コードを指定する「XML宣言」を先頭行に記述し、その後にXML文書の本体を記述します。XML宣言に記述する内容の詳細は「CSVからXMLへ」を参照してください。

要素の記述

まずは、下記部分について考えてみます。

<ゲームタイトル>DARK SOULS Ⅱ</ゲームタイトル>

この部分は、「DARK SOULS Ⅱ」というゲームタイトルをあらわしています。XMLでは、「<ゲームタイトル>DARK SOULS Ⅱ</ゲームタイトル>」の部分を要素(element)と言い、ひとつのデータをあらわします。

また、「<」「>」で囲まれた部分を要素名と言います。このサンプルでは「ゲームタイトル」が要素名です。さらに、「<ゲームタイトル>」と「</ゲームタイトル>」をタグと言い、要素のはじまりを示す「<ゲームタイトル>」を開始タグ、要素の終わりを示す「</ゲームタイトル>」を終了タグと言います。

タグと要素

そして、開始タグと終了タグで囲まれた部分を要素の内容(content)と言います。

他のデータも同じように要素として記述します。

<管理コード>0001</管理コード>
<ゲームタイトル>DARK SOULS Ⅱ</ゲームタイトル>
<購入日>2013/3/14</購入日>
<購入価格>4000</購入価格>

このサンプルでは、これで1つのゲーム情報としています。そのことをあらわすためには下記のように記述します。

<ゲーム情報>
  <管理コード>0001</管理コード>
  <ゲームタイトル>DARK SOULS Ⅱ</ゲームタイトル>
  <購入日>2013/3/14</購入日>
  <購入価格>4000</購入価格>
</ゲーム情報>

要素の中に要素が4つあります。これはつまり、「ゲーム情報」をあらわす要素は、4つの要素を持っているということです。
同じように次のゲーム情報も記述します。

<ゲーム情報>
  <管理コード>0001</管理コード>
  <ゲームタイトル>DARK SOULS Ⅱ</ゲームタイトル>
  <購入日>2013/3/14</購入日>
  <購入価格>4000</購入価格>
</ゲーム情報>
<ゲーム情報>
  <管理コード>0002</管理コード>
  <ゲームタイトル>モンスターハンター4G</ゲームタイトル>
  <購入日>2014/10/11</購入日>
  <購入価格>5800</購入価格>
</ゲーム情報>
<ゲーム情報>
  <管理コード>0003</管理コード>
  <ゲームタイトル>ドラゴンクエストヒーローズ 闇竜と世界樹の城</ゲームタイトル>
  <購入日>2015/2/26</購入日>
  <購入価格>5800</購入価格>
</ゲーム情報>

これである程度できましたが、このデータ全体が何のデータについて書かれているのかという肝心の情報がまだありません。つまり、XML文章本体の一番外側の要素の記述がありません。

<?xml version="1.0" encoding="UTF-8" ?>
<ゲーム所持リスト>
  <ゲーム情報>
    <管理コード>0001</管理コード>
    <ゲームタイトル>DARK SOULS Ⅱ</ゲームタイトル>
    <購入日>2013/3/14</購入日>
    <購入価格>4000</購入価格>
  </ゲーム情報>
  <ゲーム情報>
    <管理コード>0002</管理コード>
    <ゲームタイトル>モンスターハンター4G</ゲームタイトル>
    <購入日>2014/10/11</購入日>
    <購入価格>5800</購入価格>
  </ゲーム情報>
  <ゲーム情報>
    <管理コード>0003</管理コード>
    <ゲームタイトル>ドラゴンクエストヒーローズ 闇竜と世界樹の城</ゲームタイトル>
    <購入日>2015/2/26</購入日>
    <購入価格>5800</購入価格>
  </ゲーム情報>
</ゲーム所持リスト>

この一番外側になっている要素をルート要素(root element)と呼びます。XML文書では本文のところに記述したデータ全体が何のデータについて書かれているのかを、ルート要素を使って記述するというルールがあります。言い換えると、XML文書の本体部分は、必ず単一のルート要素に収まっていなければなりません。

このサンプルのルート要素は「ゲーム所持リスト」になります。その意味は、私が現在所持しているゲームソフトのリストになります。(DARK SOULS Ⅱは難しかった。。)