もくじ

DOCTYPE宣言・XML宣言(linux)

必要な理由

もちろん無くても自分の所で見ているだけなら適当に表示してくれますが、インターネットの世界ではいろいろな環境の機械で様々なブラウザで見られるので、自分の作っている環境でうまく見えてもどこでもうまくいくとは限りません。そこで自分が基づいて書いたHTMLのきまり(文書の型)を宣言し、それに基づいて表示してもらうように要請します。それがこの文書型宣言です。

主に次の3つの理由からかなり面倒な書き方になっています。

XHTML 1.1 の文書型定義

まだまだ古いタイプも残っていますが、これからしばらくは XHTML 1.1 の時代です。

index.html の最初の部分を次のように書き換えてください。

書換前
<html>
<head>
………

  ↓

書換後
<?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>
………

  ↓ インターネットエクスプローラ対策

書換後
<?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>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
………

すべてを理解するのも記憶するのも困難ですが、宣言の出現順と大切な部分をチェックできるようにしておきましょう。

<?xml ....... "UTF-8"?>
<!DOCTYPE ...  XHTML 1.1 .... >
<html .......  xml:lang="ja">
<head>
<meta .........=UTF-8" />
<?xml ....
全体が XML の規約にそった文書であることを示します。UTF-8 の部分も大切です。
もちろん保存する時にUTF-8で保存しなければなりません
諸事情で書かないことにします
<!DOCTYPE ....
ウエブページとしてのタイプを宣言します。普通のソフトウェアでいうバージョンにあたります。この文書は XHTML 1.1 です。
もちろん<font>タグなどを使わないなど XHTML 1.1 の規約に従う必要があります。
<html ....
ここからがウエブページの記述の部分です。XML文書としてhtmlはどういう構造であるかを書いている場所と、何語で書かれているかを記述します。
ja と書くのは日本語の時です。
<meta ....
冒頭のXML宣言があれば本来不要な部分です。昔のHTMLの時の名残です。ただ、XMLによる宣言を理解できない環境もありますのでしばらくは残しておくというものです。なかでも UTF-8 の部分が大切です。
ダブルクォーテーションの位置に注意します。charset="UTF-8"ではありません。この指定では、 Content-Type が text/html であり、 charset=UTF-8 でもある という意味なのです。
諸事情で書くことにします

インターネットエクスプローラ対策として入れている、最後の1行である <meta http-equiv の部分は本来はサーバーに指示を出す為のものでした。ただし最近の設定ではサーバーはこれを読みませんから不要です。おまけに、中の「 text/html 」が正しいのは html の時で xhtml では application/xhtml+xml もしくは application/xml と書くべきなので正しくはないのです。でも。

# application/xhtml+xml は認識しません(ファイルダウンロードのダイアログが出現する)。 XHTML として認識させるためには、 text/xml もしくは application/xml の MIME 型を用いなければなりません(application の定義から行けば、後者の方がベター)。

文字エンコーディング

UTF-8 についての説明です。日本語の文字をどのように使っているかを表すものです。ファイルの中の日本語はいくつかの違った表現方法があります。

もちろん実際に使用している文字コードと合わせなければなりません。geditでは初めての保存の時にそのファイルの文字コードを指定します。

…

UTF-8 以外の方式

HTMLで使用される日本語の文字符号化方法はおおむね次の3種類です。Shift_JIS はシフトJIS、EUC-JP は EUC、UTF-8 はユニコードと呼ばれることもあります。UTF-8 は中国語やハングルなど多くの言語の文字を扱えるのでよく使われるようになってきました。

名前特徴・用途など「愛」のコード表現
Shift_JIS日本語。windowsで使用88 a4
EUC-JP日本語。UNIX系のOSで使用b0 a6
UTF-8Unicodeの一形式。多言語に対応。e6 84 9b
iso-8859-1欧文。 ASCII 文字セット。不可能
iso-8859-2欧文のもうひとつのタイプ不可能

もしもShift_JISのときは、次のように指定します。

<?xml version="1.0" encoding="Shift_JIS"?>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />

もちろんファイルを保存する時も Shift_JIS で保存しなければなりません。

結論

index.html は最終的に次のようになります。

<?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>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>このページのタイトル</title>
</head>
<body>
<h1>私の ウェブページ</h1>
<p>はじめてのウェブページです。</p>
</body>
</html>

ウェブページ(Apr.2009)
聖愛中学高等学校
http://www.seiai.ed.jp/
Apr.2006 書換