XHTMLとかの文書型宣言

今だと大抵はXHTML1.0 Transitionalですね。

XHTMLの構造

  • XML宣言
  • 文書型宣言(DTD)
  • html要素
    • head要素
    • body要素

XHTML1.0 Strict

厳格型。見栄えに関する要素・属性は基本的に認めていない。もちろんフレームもなし。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head></head>
<body></body>
</html>

XHTML1.0 Transitional

移行型。XHTML1.0 Strictの定義に加え、HTMLにある見栄えに関する要素・属性を認めている。フレームはなし。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head></head>
<body></body>
</html>

XHTML1.0 Frameset

フレーム設定型。XHTML1.0 Transitional に加え、フレームレイアウトが可能となっている。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head></head>
<frameset></frameset>
</html>

XHTML1.1

XHTML1.0 Strict にモジュール化が取り入れられたもの。構造モジュール・リストモジュール・テーブルモジュールのように要素をモジュールに分割し、モジュール毎に取り入れられるようになった。
HTML4.01 や XHTML1.0 Strict、Transitional、Framesetといったカテゴリはない。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
<head></head>
<body></body>
</html>

HTML4.01 StrictのDTD

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

HTML4.01 TransitionalのDTD

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

HTML4.01 FramesetのDTD

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">

HTML5

HTML5SGMLの応用系でなくなったので文書型宣言は不要。通例として以下とするみたい。ちなみに大文字と小文字の区別なし。

<!DOCTYPE html>