ATTLIST (属性リスト)
ATTLIST
ステートメントは、1 つの要素に属することができる各属性を一覧し、宣言するために使用されます。 最初に、その属性リストが適用される要素 (または複数の要素) の名前を指定します。 次に、各属性の名前を一覧し、それらが必須かどうか、値としてどのような文字データが許されるかを指定します。
構文
<!ATTLIST elementName attributeName dataType default >
パラメーター
- elementName
属性リストが適用される要素の名前。
- attributeName
属性の名前。 このパラメーターは、elementName
で使用できるすべての属性を一覧するまで、必要な回数繰り返すことができます。
dataType
attributeName
パラメーター中で名前を挙げた属性のデータ型。次のいずれかである必要があります。CDATA - 属性は文字データのみを含みます。
ID - 属性の値は一意でなければなりません。 ドキュメント内の他の要素と属性で繰り返すことはできません。
IDREF - 属性は、ドキュメントに含まれる他の ID 型の属性の値を参照します。
ENTITY - 属性値は、外部の未解析の ENTITY (同じ DTD で宣言されている) の名前に対応する必要があります。
ENTITIES - 属性値には、DTD で宣言された、未解析の外部エンティティの複数の名前が含まれます。
NMTOKEN - 属性値は名前トークンであることが必要です。 名前トークンには文字データが許されますが、CDATA よりは制限を受けます。 名前トークンには、文字、数字、そしてピリオド、ハイフン、アンダースコアおよびコロンなどの句読記号を含むことができます。 しかし、名前トークンに空白文字を含めることはできません。
NMTOKENS - 複数の名前トークンを含む属性値。 詳細については NMTOKEN および Enumerated の説明を参照してください。
Enumerated - 属性値は列挙された一覧に含まれる値に限定されます。 一覧に一致する値のみが有効に解析されます。 列挙されたすべてのデータ型は 1 組のかっこで囲まれ、それぞれの値は縦棒 ("|") で区切られます。
default
attributeName
で指定された属性の既定値。 次の表で可能な既定値について説明します。既定値 説明 #REQUIRED
属性は XML ドキュメントに必須であり、ない場合は解析エラーとなります。 場合により、解析エラーを避けるために、オプションで
defaultValue
フィールドをこのキーワードに続けて使用することができます。#IMPLIED
属性は XML ドキュメントで使用できます。省略しても解析エラーとはなりません。 場合により、オプションでこのキーワードに続けて
defaultValue
フィールドも使用することができます。#FIXED
属性値は DTD 内で固定され、XML ドキュメントで変更したり上書きすることはできません。 このキーワードを使用した場合、固定の属性値を宣言するために、このキーワードに続けて
defaultValue
フィールドも使用する必要があります。defaultValue
既定値または固定値。 パーサーは、XML ドキュメントで属性が欠落しているか使用されていない場合は、XML ドキュメントにこの値を挿入します。 すべての値は一組の引用符 (一重または二重引用符) で囲む必要があります。
注 : |
---|
DTD 内の各 ATTLIST 宣言について、1 回だけ elementName を使用する必要があります。attributeName 、dataType 、および default の各パラメーターは、リスト中の各属性を定義するもので、elementName で使用されるすべての属性値を列挙し定義し終わるまで、必要な回数繰り返すことができます。
|
例
この例では <book>
要素について以下を定義します。
文字データだけを持つことのできるオプションの
publisher
属性。値が
"MyStore".
である固定のreseller
属性。XML ドキュメント内で、各
<book>
要素に対して、一意に識別できる値を持つ必須のISBN
属性。"yes"
または"no"
のいずれかの値を持たなければならない必須のInPrint
属性。 XML ドキュメント内で明示的に値が設定されていない場合は、既定により"yes"
の値が強制されます。