← 1.16 その他のブロックレベル要素 目 次 1.18 汎用属性 →
これまでは要素を中心に勉強してきましたが,その中のいくつかの要素では属性を指定しています。例えばhtml要素では,xmlns属性,xml:lang属性,lang属性を指定しました。
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
この属性の記述方法をもう一度復習しておきましょう。属性は属性名と属性値を等号で結び,属性値は必ず2重引用符(あるいは単一引用符)で囲んで記述します。また,複数の属性を記述する場合は,各属性を1つ以上の空白文字で区切って記述するようにします。
属性名="属性値"
実は,この属性に関するルールもDTDに定められています。例にhtml要素のDTDを抜粋してみましょう。
<!ENTITY % LanguageCode "NMTOKEN">
<!ENTITY % URI "CDATA">
<!ENTITY % i18n
"lang %LanguageCode; #IMPLIED
xml:lang %LanguageCode; #IMPLIED
dir (ltr|rtl) #IMPLIED"
>
<!ELEMENT html (head, body)>
<!ATTLIST html
%i18n;
id ID #IMPLIED
xmlns %URI; #FIXED 'http://www.w3.org/1999/xhtml'
>
このとき「%i18n;」の部分は,パラメータ実体参照なので要素の場合と同様に置換して考えると次のように書くことができます。
<!ATTLIST html
lang NMTOKEN #IMPLIED
xml:lang NMTOKEN #IMPLIED
dir (ltr|rtl) #IMPLIED
id ID #IMPLIED
xmlns CDATA #FIXED 'http://www.w3.org/1999/xhtml'
>
この<!ATTLIST・・・>の部分が属性に関するもので属性リスト宣言と呼びます。属性リスト宣言の一般形式は,次のようになります。
<!ATTLIST 要素名 属性名 属性型 デフォルト指定>
複数の属性を宣言する場合は,「属性名,属性型,デフォルト指定」の部分を空白文字で区切り列挙します。
以上のことから,先に例として取り上げたhtml要素の属性の意味は次のようになります。