XML の基本的な用語が知りたい

初稿: 2005-08-18

XML を構成する部品の名前は基本

当然ですが XML には多数の用語があります。基本的な用語として XML を構成する部品の名前を知ることは重要です。その中でも最も使用頻度が高いと思われる「要素 (Element)」と「属性 (Attribute)」に関連する用語について触れてみます。これらは HTML でも同様の用語が使用されているため、既にご存知の方も多いとは思いますが、意外と勘違いしているものです。

要素と属性に関連する用語

まず XML で最も基本的な構成単位となる要素について見てみましょう。

<book code="ISBN0-0000-0000-1">
  <title>はじめての XML</title>
  <author>桃 太郎</author>
</book>

上記で強調された箇所が title 要素です。 開始タグから終了タグまでが title 要素となります。注意点としては開始タグや終了タグだけが要素となるのではなく、タグに囲まれる部分も要素に属することです。また、要素においてタグに囲まれる部分を「内容 (Content)」 と呼びます。そのままですね。この場合、内容は「はじめての XML」となりますが、これは子要素ではなく単なるデータです。このような単なるデータを「文字データ (Character data)」と呼びます。次に属性ついて見てみましょう。

<book code="ISBN0-0000-0000-1">
  <title>はじめての XML</title>
  <author>桃太郎</author>
</book>

上記で強調されている部分が code 属性です。 属性は要素に情報を付加するもので、常に開始タグに含まれます。では、もう少し複雑にして、属性と子要素を含む book 要素について見てみましょう。

<book code="ISBN0-0000-0000-1">
  <title>はじめての XML</title>
  <author>桃 太郎</author>
</book>

上記のように title 要素と author 要素を含めて book 要素となります。つまり、子要素は常に親要素に属するということです。この場合、book 要素の内容は title 要素とauthor 要素で構成されていることになります。また要素は内容の他に属性も含みます。つまり、属性は常に付加する要素に属するということです。 この場合、code 属性は book 要素に対し情報を付加しています。注意点は、属性は要素に属すが、内容には属さないということです。これらの関係をまとめると下図のようになります。

要素に関連する用語

要素と属性を識別するものは?

さて、今まで book 要素、title 要素などと要素を区別してきましたが、この区別に使われた「book」や「title」とは一体何なのでしょうか。これらのように要素の種類を識別する名前を「要素型 (Element type)」と呼びます。つまり、「book 要素」とは「book という要素型の要素」となるわけです。また、属性は見てのとおり区切りである「=」を境に、2 つの部分から構成されています。code 属性の場合、「code」と「ISBN0-0000-0000-1」です。この「=」の左側の部分の属性を識別する名前を「属性名 (Attribute name)」、右側の部分の実際の値を「属性値 (Attribute value)」と呼びます。つまり「code 属性」とは「code という属性名の属性」ということになります。要素が識別子を「要素型」と呼ぶのに対し「属性」は「属性名」と呼びます。ややこしいですね。


目次へ戻る