hsmwhsmw

初心者入門要素を記述する | XML入門

XML文書では1つ1つのデータを要素と呼ばれるものを使って記述していきます。ここでは要素の記述方法について解説します。

1.XMLにおける要素とは
2.要素名のルール
3.要素の内容として別の要素を記述する
4.空要素とは
5.ルート要素を記述する

XMLにおける要素とは

要素の構文は次の通りです。

<要素名>内容</要素名>

<要素名>を開始タグ、</要素名>を終了タグと呼びます。開始タグと終了タグの間に要素の「内容」をテキストで記述します(他の子要素を含むこともできます)。開始タグから終了タグまでをまとめて要素と呼びます。

p3-1

要素名は自由に決められますが、どんなデータを扱っているのか分かる名前が望ましいです。

前のページで記述したXML文書のサンプルを見て下さい。

<?xml version="1.0" encoding="UTF-8" ?>
<foods>
  <food>
    <name>バナナ</name>
    <color>黄色</color>
  </food>

  <food>
    <name>リンゴ</name>
    <color>赤</color>
  </food>
</foods>

このXML文書には「<name>バナナ</name>」や「<color>黄色</color>」などの要素が含まれています。「<name>バナナ</name>」は「name」に関するデータで値は「バナナ」です。また「<color>黄色</color>」は「color」に関するデータで値は「黄色」です。

要素名のルール

要素名にはこれまでのサンプルのように半角英数の他に日本語を使うこともできます。次のサンプルは要素名に日本語を使ったものです。

sample3_1.xml

<?xml version="1.0" encoding="UTF-8" ?>
<食料品>
  <食べ物>
    <名前>バナナ</名前>
    <色>黄色</色>
  </food>

  <food>
    <名前>リンゴ</名前>
    <色>赤</色>
  </食べ物>
</食料品>

サンプルをブラウザで表示してみると次のように表示されます。

p3-2

いずれにしても要素名にはどんなデータについての要素なのかが分かるような要素名をつけて下さい。なお要素名に数字を含むことはできますが、数字から始まる名前を付けることはできません。

要素の内容として別の要素を記述する

要素の内容には別の要素を含むことができます。先ほどのサンプルをもう一度見て下さい。

<?xml version="1.0" encoding="UTF-8" ?>
<foods>
  <food>
    <name>バナナ</name>
    <color>黄色</color>
  </food>

  <food>
    <name>リンゴ</name>
    <color>赤</color>
  </food>
</foods>

「food」要素の開始タグ「<food>」と終了タグ「</food>」の間には「<name>バナナ</name>」と「<color>黄色</color>」という2つの別の要素が記述されています。

これは「food」に関するデータとして「name」と「color」に関するデータがあり、それぞれの値は「name」が「バナナ」で「color」が「黄色」、という意味になります。この場合の「food」は「name」と「color」の親要素、「name」と「color」が「food」の子要素となります。要素の内容についてさらに別の要素を使って定義することで、XML文書のデータをより処理しやすくなります。

例えば次のXML文書と比較してみて下さい。内容的には同じですが、データを利用する場合にはより細かく要素として取り出してあったほうが便利です。

<?xml version="1.0" encoding="UTF-8" ?>
<foods>
  <food>黄色のバナナ</food>
  <food>赤いリンゴ</food>
</foods>

さらに子要素を親要素とした子要素を含めることもできます。このようにXML文書は階層的な構造になります。

空要素とは

要素は開始タグと終了タグの間に内容を記述するものですが、内容が無い要素も存在します。このような要素を空要素といいます。空要素とは例えばHTML文書でいうと改行を表す<br>要素や画像を表す<img>要素のようなものです。要素の内容としてテキストで記述するようなものはありませんが、画像のようなデータが含まれている場合に空要素を使います。(画像の場合はテキストはありませんが、別のページで解説する「属性」を使って画像ファイルの場所などを記述します)。

空要素の場合は内容がありませんので、要素は次のように記述されます。

<要素名></要素名>

空要素の場合は開始タグと終了タグをまとめて次のように記述することもできます。

<要素名/>

スラッシュ(/)の前にスペースを1つ入れることもできます。

<要素名 />

ルート要素を記述する

XML文書には複数の要素を含まれます。また要素の中に別の要素を含めることもできます。ここでXML文書を記述する上でもう一つ重大なルールがあります。それはXML文書全体は(XML宣言をのぞいて)1つの要素の中に記述しなければいけないということです。

先ほどのXML文書のサンプルをもう一度見て下さい。

<?xml version="1.0" encoding="UTF-8" ?>
<foods>
  <food>
    <name>バナナ</name>
    <color>黄色</color>
  </food>

  <food>
    <name>リンゴ</name>
    <color>赤</color>
  </food>
</foods>

一番外側に「foods」要素があり、この要素の内容として他の全ての要素が記述されています。この一番外側にある要素をルート要素と呼びます。

例えば次のようなXML文書は一番外側にある要素が2つありますのでXML文書としては正しくありません。

<?xml version="1.0" encoding="UTF-8" ?>
<food>
  <name>バナナ</name>
  <color>黄色</color>
</food>

<food>
  <name>リンゴ</name>
  <color>赤</color>
</food>

XML文書を作成する場合は必ず一番外側のもっとも階層が上の要素は単独の要素になるようにして下さい。