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つにしたい時には、属性値の列挙を使用します。
|