5.3 デフォルト値の設定
属性リスト宣言では、属性値を明示しなかった場合にどのように処理するかを指定することができます。これをデフォルト値で宣言します。デフォルト値として、以下のうちどれかを指定する必要があります。
- #REQUIRED
- #IMPLIED
- 2重引用符あるいはアポストロフィで囲んだ属性値
- #FIXED 2重引用符あるいはアポストロフィで囲んだ属性値
省略することができず、必ず指定しなければいけない属性値に関しては、#REQUIREDと記述します。
<!ATTLIST 商品 商品番号 ID #REQUIRED>
上の商品番号属性は必ず値を設定する必要があります。属性値が指定されなった場合はエラーになります。対して、属性値を設定しなくてもよい場合には、IMPLIEDと記述します。
<!ATTLIST 画像 size NMTOKENS #IMPLIED>
上のsize属性は設定しなくてもエラーになりません。属性値が設定されてない場合は、値がないものとして処理を続けます。
REQUIREDもIMPLIEDも設定しなかった場合、属性値を指定しなかったときに適用されるデフォルト値を設定する必要があります。デフォルト値を指定する場合は、その値を2重引用符あるいはアポストロフィで囲んで宣言します。
<!ATTLIST 信号 色 (赤|青|黄色) "青">
上の例の場合、色属性の値が設定されなかった場合は、属性値は青であるとします。
すべての属性に対して固定で等しい値を設定したい場合は、FIXEDと記述し、その後に設定したい属性値を記述します。
<!ATTLIST form method CDATA #FIXED "post">
以上のように定義した場合、例えば、method属性値にgetを指定したときエラーになります。属性値を記述しなかった場合は、postが設定されているものとして処理を行います。
5.4 まとめ
- 属性リスト宣言では、情報を付加する要素、属性名、属性値の形式、デフォルト値を宣言します。