各要素や、属性の動作は、W3C の HTML 4.01 Specification を参考に、自分なりに検証したつもりですが、間違いや、勘違い等、多々あると思います。間違等を見つけられた場合は、メールで教えていただけると助かります。随時更新して完成度を高めていきたいと思います。
XHTML 1.0 Strict DTD を元に、ブロック要素 と 、インライン要素 の総称 Flow を検索します。
<!-- %Flow; mixes block and inline and is used for list items etc. -->
<!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*">
BODY要素に記述できる特定要素の子要素を除く全ての要素です。
XHTML 1.0 Strict DTD を元に、BODY要素の子要素として使用出来るブロック要素を検索します。
<!ELEMENT body %Block;>
<!ENTITY % Block "(%block; | form | %misc;)*">
<!ENTITY % block
"p | %heading; | div | %lists; | %blocktext; | fieldset | table">
<!-- these can only occur at block level -->
<!ENTITY % misc "noscript | %misc.inline;">
XHTML 1.0 Strict DTD を元に、インライン要素を検索します。
<!-- %Inline; covers inline or "text-level" elements -->
<!ENTITY % Inline "(#PCDATA | %inline; | %misc.inline;)*">
<!ENTITY % inline "a | %special; | %fontstyle; | %phrase; | %inline.forms;">
XHTML 1.0 Transitiona DTD を元に、BODY要素の子要素として使用出来る要素を検索します。
<!ELEMENT body %Flow;>
<!-- %Flow; mixes block and inline and is used for list items etc. -->
<!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*">
<!ENTITY % block
"p | %heading; | div | %lists; | %blocktext; | isindex |fieldset | table">
<!ENTITY % heading "h1|h2|h3|h4|h5|h6">
<!ENTITY % blocktext "pre | hr | blockquote | address | center | noframes">
<!ENTITY % inline "a | %special; | %fontstyle; | %phrase; | %inline.forms;">
<!ENTITY % fontstyle "%fontstyle.basic; | %fontstyle.extra;">
<!ENTITY % fontstyle.basic "tt | i | b | u | s | strike ">
<!ENTITY % fontstyle.basic "big | small | font | basefont">
<!ENTITY % phrase "%phrase.basic; | %phrase.extra;">
<!ENTITY % inline.forms "input | select | textarea | label | button">
<!-- these can only occur at block level -->
<!ENTITY % misc "noscript | %misc.inline">
XHTML 1.0 Frameset DTD を元に、HTML要素の子要素として使用出来る要素を検索します。
<!ELEMENT html (head, frameset)>
<!ELEMENT frameset (frameset|frame|noframes)*>
<!ELEMENT noframes (body)>
<!ENTITY % blocktext "pre | hr | blockquote | address | center | noframes">
<!ENTITY % blocktext "pre | hr | blockquote | address | center">