ホーム HTML CSS XML JAVASCRIPT   PHP SQL MORE...   リファレンス 事例集    

DTD - 属性

« 前章へ 次章へ »

DTDの中で、属性はATTLIST宣言で宣言します。


属性宣言

属性宣言の構文は以下の通り:

<!ATTLIST 要素名 属性名 属性タイプ デフォルト値>

DTD 例:

<!ATTLIST payment type CDATA "check">

XML 例:

<payment type="check" />

属性タイプは、次の1つに指定できます:

タイプ 説明
CDATA 値は文字データです
(en1|en2|..) 値は列挙リストの1つでなければなりません
ID 値はユニークなidです
IDREF 値は他の要素idです
IDREFS 値は他のidのリストです
NMTOKEN 値は妥当なXML名です。主に属性の先頭から数字を使えるようにしたい場合に使用します
NMTOKENS 値は妥当なXML名のリストです。複数のNMTOKEN型の属性をまとめて記述する場合に使用します。
ENTITY 値はエンティティです
ENTITIES 値はエンティティのリストです
NOTATION 値は記法名です
xml: 値は定義済のxml値です

デフォルト値は、次の1つにできます:

説明
value 属性のデフォルト値
#REQUIRED 属性は必須
#IMPLIED 属性は任意
#FIXED value 属性値を固定


属性のデフォルト値

DTD:
<!ELEMENT square EMPTY>
<!ATTLIST square width CDATA "0">

妥当なXML:
<square width="100" />

上記例において、"square"要素は、タイプがCDATAである"width"属性を持つ空要素に定義されています。 もし width を指定しなければ、デフォルト値の 0 になります。


#REQUIRED

構文

<!ATTLIST 要素名 属性名 属性タイプ #REQUIRED>

DTD:
<!ATTLIST person number CDATA #REQUIRED>

妥当なXML:
<person number="5677" />

無効なXML:
<person />

デフォルト値に対するオプションはないものの、属性の存在を強制したいときは、#REQUIREDキーワードを使用します。


#IMPLIED

構文

<!ATTLIST 要素名 属性名 属性タイプ #IMPLIED>

DTD:
<!ATTLIST contact fax CDATA #IMPLIED>

妥当なXML:
<contact fax="555-667788" />

妥当なXML:
<contact />

属性の存在を作成者に強制せず、かつデフォルト値に対するオプションがなければ、#IMPLIEDキーワードを使用します。


#FIXED

構文

<!ATTLIST 要素名 属性名 属性タイプ #FIXED "value">

DTD:
<!ATTLIST sender company CDATA #FIXED "Microsoft">

妥当なXML:
<sender company="Microsoft" />

無効なXML:
<sender company="W3Schools" />

属性に固定値を持たせ、作成者に変更を許容しない時は、#FIXEDキーワードを使用します。 作成者が別の値を指定しようとすると、XMLパーザはエラーを返します。


属性値の列挙

構文

<!ATTLIST 要素名 属性名 (en1|en2|..) デフォルト値>

DTD:
<!ATTLIST payment type (check|cash) "cash">

XML例:
<payment type="check" />
または
<payment type="cash" />

属性値を、予め決められた値の中の1つにしたい時には、属性値の列挙を使用します。


« 前章へ 次章へ »