DTDの読み方

トップ > HTMLリファレンス > HTML概要 > DTDの読み方

■ DTDの読み方

<!ELEMENT HTML O O (%html.content;) -- document root element -->

HTMLという要素(ELEMENT)を定義します。O O は開始タグも終了タグも省略可能であることを意味します。終了タグのみ省略可能なときは - O、両方とも省略できないときは - - となります。内部に %html.content; で表される要素を包含することを示しています。-- と -- の間はコメントです。

<!ENTITY % html.content "HEAD, BODY">

%html.content; は、HEAD要素とBODY要素から構成されます。カンマ(,)で区切られる場合はこの順番で現れなくてはなりません。

<![ %HTML.Frameset; [
<!ENTITY % html.content "HEAD, FRAMESET">
]]>

DOCTYPE で Frameset を指定した時は、%html.content; は HEAD要素と FRAMESET要素から構成されます。

<!ELEMENT HEAD O O (%head.content;) +(%head.misc;)>

HEAD要素は開始タグも終了タグも省略可能で、%head.content; を包含します。加えて(+)、%head.misc; を 0 個以上包含可能であることを意味します。

<!ENTITY % head.content "TITLE & ISINDEX? & BASE?">

%head.content; は、TITLE要素、ISINDEX要素、BASE要素から構成されます。アンド(&)で区切られる場合は順番は問いません。クエスチョン(?)はその要素が省略可能であることを意味します。

<!ENTITY % head.misc "SCRIPT|STYLE|META|LINK|OBJECT">

%head.misc; は SCRIPT要素、STYLE要素、META要素、LINK要素、OBJECT要素のいずれかです。

<!ELEMENT A - - (%inline;)* -(A)>

後ろのアスタリスク(*)は「0個以上」、前のマイナス(-)は「を除く」を意味します。上記は、A要素は、0個以上のインライン要素(%inline;)を包含しますが、ただし、A要素を包含することができないことを意味します。

<!ELEMENT UL - - (LI)+>

UL要素は、LI要素を包含します。

【DOCTYPE が Transitionalの場合】
□ HTML
├□ HEAD
│├□ TITLE & ISINDEX? & BASE?
│└□ +(SCRIPT | STYLE | META | LINK | OBJECT)
└□ BODY
 ├□ (%flow;)*
 └□ +(INS | DEL)

□ %flow;
└□ %block; | %inline;


【DOCTYPE が Framesetの場合】
□ HTML
├□ HEAD
└□ FRAMESET

■ 記号の意味

+(A)加えて、A を 0 個以上包含できる。
-(A)A を除く。
A*A を 0個以上。
A+A を 1個以上。
A?A を 0個もしくは1個。
A | BA もしくは B
A, BA と B をこの順番で。
A & BA と B を順不同で
Copyright (C) 2001 とほほ
初版:2001年11月24日
http://www.tohoho-web.com/html/memo/elmtree.htm