属性リスト宣言
書式
<!ATTLIST 要素名 属性名 (属性値の候補|属性値のデータ型) デフォルト属性 "デフォルト値">
データ型
| データ型 | 意味 |
|---|---|
| CDATA | 文字データを表すデータ型 |
| ID | 一意識別子 |
| IDREF | 一意識別子への参照 |
| IDREFS | 複数のIDREF |
| NMTOKEN | 名前として使用できる文字を記述するためのデータ型 |
| NMTOKENS | 複数のNMTOKEN |
| ENTITY | 外部実態 |
| ENTITIES | 複数のENTITY |
| 列挙 | ユーザ指定の属性値リスト |
例:CDATA
<!ATTLIST profile name CDATA #IMPLIED>
例:ID, IDREF, IDREFS
<!ATTLIST profile snum (ID|IDREF) #REQUIRED>
例:NMTOKEN, NMTOKENS
<!ATTLIST profile name NMTOKEN #IMPLIED>
デフォルト宣言
| デフォルト値 | 説明 |
|---|---|
| 値 | デフォルト値として設定される |
| #REQUIRED | 省略を許可しない |
| #IMPLIED | 省略可能 |
| #FIXED “値” | 固定値 |
例
<!ATTLIST profile name CDATA "MAME">
省略不可
<!ATTLIST profile name CDATA #REQUIRED>
省略可
<!ATTLIST profile name CDATA #IMPLIED>
固定値
<!ATTLIST profile name CDATA #FIXED "MAME">
メモ書き
ひとつの要素に複数の属性を定義する場合、以下の2通りの方法がある。
<!ATTLIST 要素名 属性名1 候補値 "デフォルト値"> <!ATTLIST 要素名 属性名2 候補値 "デフォルト値">
<!ATTLIST 要素名 属性名1 候補値 "デフォルト値"
要素名 属性名2 候補値 "デフォルト値">
文章型宣言 (DOCTYPE宣言)
書式
<!DOCTYPE 要素名 []>
[ と ] の中に DTD を記述する。
要素型宣言
書式
<!ELEMENT 要素名 (内容定義)>
内容定義
パターン一覧
| パターン | 解説 |
|---|---|
| (#PCDATA) | 内容は文字データのみ |
| (子要素1, 子要素2 … 子要素n) | 子要素を持つ |
| (#PCDATA|子要素1…子要素n) | 上記2つのデータが混合する |
| EMPTY | 空要素 |
出現回数指定一覧
| 指定記号 | 解説 |
|---|---|
| ? | 要素は0個か、または1個だけ出現。 |
| * | 要素は0個以上、いくつでも出現。 |
| + | 要素は最低1個以上出現。 |
| , | 要素は指定された順番どおりに出現。 |
| | | 区切られたようそのうち、どれか1個出現。 |
| () | ひとまとまり |
例:要素内には子要素が 1 個だけ出現する。
<!ELEMENT 要素 (子要素)>
例:要素内の子要素は 子要素 1, 2, 3 の順番で出現する。
<!ELEMENT 要素 (子要素1, 子要素2, 子要素3)>
例:要素内には 子要素1 か 子要素2 のどちらかひとつが出現する。
<!ELEMENT 要素 (子要素1 | 子要素2)>
例:要素内には子要素が0個か、または1個出現する。
<!ELEMENT 要素 (子要素?)>
例:要素内には子要素が1個以上出現する。
<!ELEMENT 要素 (子要素+)>
例:要素内には子要素が0個以上、いくつでも出現する。
<!ELEMENT 要素 (子要素*)>
例:空要素の宣言
<!ELEMENT 要素 EMPTY>

