単純な属性を定義する
XML文書で属性を使うには、まずそれをDTDで宣言しなければなりません。
1. <!ATTLIST tag と入力します。
tagの部分には、属性を指定するようその名前を入力します。
2. attribute と入力します。
attributeの部分には、そのタグに追加する情報を識別するための名前を入力します。
3. 任意の文字の組み合わせを使って(タグは使わずに)属性値を指定する場合は CDATA と入力します。(小カッコや #P! は不要です) または、 (choice_1 | choice_2 ) と入力します。
choice_1、choce_2の部分には、属性値として子弟d家いる値を入力します。XML文書ではこれらのうちいずれか1つの値しか指定できません。核値は縦棒を使って区切り、値全体を小カッコでくくります。
4. "default" と入力します。
これは、その要素内でこの単位を好きな数だけ指定でkることを示します。全く指定しないこともできます。
または、#FIXED "default" と入力します。
defaultの部分に規定値を入力します。この属性には必ずこの値を設定することを示します。
または、#REQUIRED と入力します 。
これはmその属性には何らかの値を指定しなければならないことを示します。
または、#IMPLIED と入力します。
これは、属性に規定値がなく、省略することもできることを示します。
5. 要素に含める核属性ごとに 2.~4.を繰り返します。
6. > と入力して属性の宣言を終えます。
・リスト内の選択肢は、有効なXML名の規則に従っていなければなりません。
・2つの属性宣言ですべての属性を宣言することも、各属性ごとに別々の属性宣言を作成することもできます。
・特殊な属性もいくつかあります。ID属性、IDREF属性、IDREFS属性については、次ページで記述します。NMTOKEN属性とNMTOKENS属性については、後述します。
・規定値を持つ属性を定義した場合、XML文書で属性の値が特に設定されていなければ、XMLパーサーが自動的に規定値を追加します。
・#FIXED "default" を使って属性を定義した場合、XML文書ではその属性に規定値を指定しなければなりません。その属性を全く指定し化ければ、パーサーは自動的に規定値を設定します。
・DTDで#REQUIRED と定義した属性に対して、XML文書で値が設定されていない、正しく動作するパーサーはエラーを返します。
・DTDで #IMPLIEDと定義され、XML文書では設定されていない属性についても、パーサーは情報を返します。
・属性定義ではすべて大文字と小文字が区別されます。
・#REQUIRED と #IMPLIED の規定値を組み合わせることはできません。