属性


要素の性質

タグには、タグ名以外に要素に対する属性を指定できます
属性とは、厳密にどういうものであるかを説明することはできませんが
(XML では、属性として何を指定するかも、あなたが制定することができるので)
簡単に解釈するならば、タグに指定する追加情報のようなものです

属性は、タグの識別子からホワイトスペースで区切って
属性名 = "値" という形で指定します
これは、以前 XML 宣言で指定した属性と同じです(XML 宣言はタグではないので注意)

属性を指定する時は値を引用符で囲む必要があります
HTML の場合は、引用符を付けても付けなくてもかまいませんでしたが
XML では、必ず指定しなければなりません
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<object>
	<image src="kitty.jpg" title="kitty on your lap"/>
</object>
サンプルを見る

この文書の image タグには src 属性と title 属性があります
例えば image タグが文書に画像ファイルを参照させるための要素だとすれば
当然、画像ファイルの位置と参照できなかったときの説明文などが必要でしょう
これは、それを属性で表現した例です

属性の値に二重引用符が含まれている場合
値を囲む引用符に、二重引用符の代わりに一重引用符を指定できます
例えば、プログラムのソースなどでは二重引用符が出現する可能性があるので
代わりに一重引用符で属性値を囲むなどの対処が可能です
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<object>
	<language>
		<basic code='10 PRINT "Kitty on your lap"'/>
	</language>
</object>
サンプルを見る

この XML 文書の場合 basic タグの code 属性の値に二重引用符が含まれています
そのため、属性を囲む引用符には一重引用符を採用しています

属性を使う時に注意しなければならないのは、本当に属性であるべきかどうかです
要素として表したほうが適切なものを属性として表現してしまった場合
文書の保守性に大きなダメージを与える可能性があります

属性は、それが単一で完成している情報に適しています
まだ分解できるような情報の場合は、子要素にするべきです
例えば、横幅や高さは width や height 属性として情報を与えることが推奨されますが
時間や住所は、時、分、秒とか、国、都道府県、市町村、というように分解できる情報です
これを属性で "2002/04/02/" というように指定すると、個々のデータにアクセスできません
何より、これだけではコンピュータは、どれが年でどれが月なのかも理解できません




前のページへ戻る次のページへ