属性を記述する

XML 文書で記述する要素に対して属性と呼ばれる付加的なデータを記述することができます。ここでは属性の記述方法と、要素と属性の使い分けについて解説します。

(Last modified: )

属性の記述方法

属性は要素の中でも開始タグの中に記述します。構文は次の通りです。

<要素名 属性名="属性の値">内容</要素名>

属性の名前、そして属性の値を記述します。値はダブルクオーテーションでくくって記述してください。例えば food 要素で属性の名前が code 、属性の値が 001 だった場合には次のように記述します。

<food code="001">木製の椅子</food>

複数の属性を要素に記述することができます。

<要素名 属性名1="属性の値1" 属性名2="属性の値2">内容</要素名>

ただし、同じ属性を複数回記述することはできません。

それでは複数の属性を記述したサンプルを見てみます。

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

  <food code="002" color="緑">
    <name>リンゴ</name>
  </food>
</foods>

この XML 文書をブラウザで開いてみると次のように表示されます。

属性の記述方法(1)

属性名で使用できる文字

属性名で使用できる文字は要素名で使用できる文字と同じです。

1文字目:
アルファベット、漢字、ひらがな、カタカナ、アンダーバー(_)、セミコロン(:)

2文字目以降:
1文字目で使用できる文字に加えて、数字、ドット(.)、ハイフン(-)

属性名には数値で始まる属性名は使用できません( 2 文字目からは使用できます)。

× <価格 2ndprice="6000">8000</価格>

属性と要素の使い分け

属性は要素に付加的なデータを記述する時に使用されますが、要素では内容として別の要素を子要素として記述することができますので付加的なデータは属性ではなく子要素として記述することもできます。

その為、先ほど属性を使って記述した XML 文書は子要素を使って次のように記述することもできます。

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

  <food>
    <name>リンゴ</name>
    <code>002</code>
    <color>緑</color>
  </food>
</foods>

では属性と要素をどのように使い分ければいいのかというと、属性では同じ属性を複数使用できないなどのルール上の制約を除けばどちらを使っても構いません。非常に長かったり改行が含まれるようなテキストの場合は子要素を使ったほうが適していますし、外部に見せる必要がないような内部的なデータについては属性を使ったほうが適していますがあくまでどちらかと言えばというものなので、より適していると思われる方法を選択されてください。

画像を表すような要素の場合、テキストで表示する内容が無いので画像ファイルの場所は属性の値として記述し、要素そのものは空要素として記述できます。

<img src="http://www.example.com/sample.jpg"/>

何らかのルールを決めて属性と要素を使い分けるといいのではないでしょうか。

-- --

属性の記述方法と、要素と属性の使い分けについて解説しました。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。