contents

HTMLのDTDの読み方

属性の宣言(Attribute declarations)

要素に指定する属性を宣言します。属性の省略時の情報や使用できるデータ型なども指定します。以下のように一度に複数の属性を宣言することもできます。

属性の宣言方法

<!ATTLIST 要素名 属性名  属性の値  属性省略時の値>

<!ATTLIST 要素名 属性名1 属性の値1 属性省略時の値1
         属性名2 属性の値2 属性省略時の値2
         属性名3 属性の値3 属性省略時の値3
         ・・・・
>
「要素名」には、属性を与える要素の名前を記述します。

「属性の値」には、属性として指定できる特定の値やデータ型を指定します。

「属性省略時の値」には、属性が省略された場合の値や、省略の可否や解釈に関するキーワードを指定します。

【 例 】

<!ENTITY % URI "CDATA">
<!ENTITY % ContentType "CDATA">
<!ENTITY % Script "CDATA">
<!ENTITY % Charsets "CDATA">

<!ATTLIST FORM
%attrs;
action      %URI;          #REQUIRED
method      (GET|POST)     GET
enctype     %ContentType;  "application/x-www-form-urlencoded"
onsubmit    %Script;       #IMPLIED
onreset     %Script;       #IMPLIED
accept-charset %Charsets;  #IMPLIED
>

属性省略時の値

「属性省略時の値」には、特定の値を指定することもできますが、以下のようなキーワードを指定することもできます。

#REQUIRED
 省略不可

#IMPLIED
 省略された場合はアプリケーションに依存

#FIXED
 このキーワードに続く値に固定

【 例 】

<!ATTLIST IMG
%attrs;
src         %URI;          #REQUIRED
alt         %Text;         #REQUIRED
longdesc    %URI;          #IMPLIED
height      %Length;       #IMPLIED
width       %Length;       #IMPLIED
usemap      %URI;          #IMPLIED
ismap       (ismap)        #IMPLIED
>

属性の値

「属性の値」には、特定の値を列挙することもできますが、任意のものが与えられる場合には以下のデータ型が指定できます。

CDATA
 実体参照も含む文字データ
※前後の空白は無視され、途中のタブ・改行コードなどは空白に置き換えられます。

ENTITY
 実体参照値

ENTITES
 実体参照値(複数)

ID
 識別子
※識別子は、必ずアルファベット(A〜Z, a〜z)で始まり、アルファベット、数字(0〜9)、「-」「_」「:」「.」以外の文字を含むことはできません。

IDREF
 ID属性で指定された識別子への参照値

IDREFS
 ID属性で指定された識別子への参照値(複数)

NAME
 名前
※名前は、必ずアルファベット(A〜Z, a〜z)で始まり、アルファベット、数字(0〜9)、「-」「_」「:」「.」以外の文字を含むことはできません。

NAMES
 名前(複数)
※名前は、必ずアルファベット(A〜Z, a〜z)で始まり、アルファベット、数字(0〜9)、「-」「_」「:」「.」以外の文字を含むことはできません。

NUMBER
 数値

NUMBERS
 数値(複数)

【 例 】

<!ATTLIST META
%i18n;
http-equiv  NAME           #IMPLIED
name        NAME           #IMPLIED
content     CDATA          #REQUIRED
scheme      CDATA          #IMPLIED
>

論理値をとる属性

文書インスタンス(HTML)の中で属性の値を指定せずに、属性名だけを書いた場合に「真(true)」、属性名がない場合に「偽(false)」の値となるような属性があります。
【 例 】

<!ATTLIST OPTION
%attrs;
selected    (selected)     #IMPLIED
disabled    (disabled)     #IMPLIED
label       %Text;         #IMPLIED
value       CDATA          #IMPLIED
>

この例の属性「selected」と「disabled」は、文法的には <OPTION selected="selected"> と使用するものなのですが、<OPTION selected> のように属性名が指定されただけで有効(真:true)となります。