文書型は下図のようにたくさんあります。現在はHTMLからXHTMLへの移行途中にあります。HTMLの中にもバージョン4.01以前との互換をとるために「移行型」などを残しているのでさらに複雑です。XHTML1.1以降ではこの移行型はなくなりますから、厳密型の流れに乗りましょう。
HTML | HTML 4.01 厳密型 |
HTML 4.01 移行型 |
HTML 4.01 フレーム型 |
↓ | ↓ | ↓ | |
XHTML | XHTML 1.0 厳密型 |
XHTML 1.0 移行型 |
XHTML 1.0 フレーム型 |
↓ | ↓ | ↓ | |
XHTML 1.1 | × | × |
XHTMLはHTMLを拡張可能なマーク付け言語 (XML) の書き方に従って書くようにしたもので、HTMLに残るマーク付けの曖昧な部分をなくし、文書の内容をコンピュータプログラムで処理しやすくすることを指向している。最近のワープロの文書ファイルはXMLで出力されていたりする。
実は HTML 4.01仕様は、3つの文書型定義(DTD)を規定しています。同じバージョンでもサポートする要素が異なっています。自分の事情に合わせて次の3つの何れかの文書型宣言をすることになっています。
これは、推奨しないこととなった要素や属性を含まず、またフレーム設定用の要素・属性をも含みません。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
これは、厳密型DTDのすべての要素・属性に加えて、推奨しない要素や属性も含む(推奨しないもののほとんどは視覚的プレゼンテーションに関わるもの)。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
これは、移行型DTDのすべてに加えて、フレーム用の内容を加えたものです。フレームの記述のあるページにはこれをつけます。(授業で作ったページでは frame01.html だけです)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
HTML 4.01 を XML に適合するように定義し直したものです。3種類はHTML 4.01 と同じです。文書型の宣言の前に XML に準拠した文書であることを示す宣言が必要になります。また html タグの中にいくつかの記述が必要ですので、合わせてここに書いてあります。
<?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">
<?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">
<?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">
<?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">