HTMLからXHTMLにスムーズに移行するには、「書式の違い」をきちんと押さえておくことが不可欠。今回は「XML宣言」「文書型宣言」「XML名前空間と言語コード」「MIMEタイプ」「style要素とscript要素」について見ていこう。

HTMLよりも書式が厳格なXHTML

 XHTMLはHTMLをXMLで再定義したマークアップ言語であり、HTMLの簡便さを残しつつXMLの論理的厳密性を備えている。そのため、HTMLのようにルーズなコーディング(たとえば終了タグがないなど)でもブラウザで問題なく表示される、ということはほとんどない。したがって、書き方にエラーがないかどうか少し神経質にならなければならない。

 また、CSSがきちんと適用されないというトラブルも、実はXHTMLが正しく書かれていないことに起因していることが少なくない。

 これらの問題を避けるべく、エラーのないソースにするには、バリデータ(ソース検証ツール)を使うのが有効である。XHTMLは「W3C Markup Validation Service」で、CSSは「W3C CSS Validation Service」でチェックするのがよいだろう。

 なお、日本では「Anothe HTML-lint」というXHTMLやアクセシビリティに関する優れたバリデータを利用するのも一般的である。ただ、このバリデータは特にアクセシビリティについてやや過剰なまでにエラーを指摘するので、減点「0」の項目は気にしない、きちんと理由さえ押さえていれば多少の減点は目をつぶるなど、使い方には注意が必要だ。

 それでは以下、HTMLとXHTMLの書式の違いを詳しく見ていくことにする。現状、実務的にはXHTML 1.0 StrictまたはTransitionalを採用するのが一般的であるが、XHTML 1.1も視野に入れて書式の違いを説明しよう。

1. XML宣言

 XHTMLではHTMLと異なり、文書の一番はじめにXML宣言を記述する。XHTMLのデフォルトのエンコーディング(文字符号化方式)は「UTF-8」または「UTF-16」であり、これらのエンコーディングを採用する場合はXML宣言自体を省略することができるとされているが、仕様上はどのエンコーディングを利用する場合でもきちんとXML宣言を記述しておくことが推奨されている。

XML宣言
<?xml version="1.0" encoding="UTF-8"?>

 version属性ではXHTMLではなくXMLのバージョンを指定するので、XHTML 1.0でもXHTML 1.1でも「1.0」と指定する点に注意しよう。

 ただし、Internet Explorer(以下、IE)6では、XML宣言が記述されている場合、レンダリングモードとして「標準準拠モード」ではなく「過去互換モード」が採用されてしまうという問題があるので、実務的にはどのエンコーディングを採用する場合でもXML宣言は書かないのが一般的である。

 なお、エンコーディングとは、データを安全に転送・処理するために符号化(記号化)する仕組みで、1文字ごとにバイト列で表す。日本語環境では「UTF-8」のほかにも、「Shift_JIS」(シフトJIS)、「EUC-JP」(日本語EUC)、「iso-2022-jp」(JIS)がよく利用される。今後は、Unicode(ひとつの文字コード体系で多言語処理を可能とするエンコーディング)である「UTF-8」がより頻繁に利用されるようになると考えられるので、可能であれば「UTF-8」を採用しておくことをお勧めする。この場合、あわせてテキストエディタなどの編集ソフトでXHTMLファイルを保存する際、「UTF-8」を選択しておくことを忘れないようにしよう。なぜなら、保存の際の文字コードと、XHTMLのなかで採用されているエンコーディングが一致しない場合、文字化けが発生する原因となるからだ。Windows環境での標準的な保存文字コードは「Shift_JIS」なので特に注意しよう。

この先は会員の登録が必要です。今なら有料会員(月額プラン)が4月末まで無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら