正しいXHTML文書にするためには、XML宣言や文書型宣言と呼ばれる宣言を記述する必要があります。
そして文書の一番大きな囲みとなる要素であるhtml 要素のXML名前空間も、xmlns 要素を使って定義します。
XML 宣言とは、XML 文書の先頭に付き、その文書が XML 文書であることを明確に示す文字列である。
XHTML 文書ももともとは XML 文書から派生し拡張されててできた文書なので、このように XHTML 文書の最初(1行目)に XML 文書の部類であることを宣言するのであろう。一方、HTML 文書にこの宣言が無いのは、歴史的に HTML 文書は XML とは別のパスで展開されていることからと理解する。
XML 宣言は必ず XML 文書の先頭に記述する必要がある。それより手前に空白文字や空行があってはならないとされます。
ホームページ・ビルダーでページを作成するとき、「ツール」 の 「オプション」 で 「ファイル」 タブで 「新規ファイルを作成する場合のフォーマット」 を XHTML 1.0 に指定した場合に、ソースのトップに XML 宣言が入るようになっています。
XML宣言文の形式は次のようになります。
必ず <? で始まり ?> で終わります
version 属性の値は常に1.0である。またXML宣言中で省略はできない。
encoding 属性で指定されるものは、XML文書がどのような文字コードで記述されているかを明示するものだが、XML宣言と同時に meta 要素による指定も必要です。
ホームページ・ビルダーで、「 ツール 」の「 オプション 」で「 ファイル 」タブで、「 保存オプション 」の中の「 文字エンコードを META タグで指定する 」にチェックを入れ、「 Shift_JIS 」を選択した場合に、新規ページを作成するときに作られる XHTML ソースは次のようになっています。
<?xml version="1.0" encoding="Shift_JIS"?>
<!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" lang="ja" xml:lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<title></title>
</head>
<body></body>
</html>
文字コード Shift_JIS が、xml 宣言文と meta 要素に記述されているのがわかります。
文字コードの宣言
文字コードの名前は正しく記述する
よくある間違いが、[Shift_JIS] とすべきところを [Shift-JIS] とすることです。特にアンダースコア (_) とハイフン (-) は間違い安いので注意が必要です。
なお、文字コードにおいて大文字小文字の区別はされないので、[Shift_JIS] と [shift_jis] は同等です。
文字化けをした場合の対処
ホームページビルダーで、「 文字エンコードを META タグで指定する 」にチェックを入れ、「 UTF-8 」を選択した場合に、これとは違った「出力漢字コード」(たとえば、「無変換 」 「 SJIS 」 など)を指定して保存すると、文字化けを起こします。そうなってしまった場合の対処方法は、こちらを参照します。