前回XHTMLの先頭部分にはデータそのものを定義づける記述が必要だと説明したが、中身の詳しい説明は後回しにしたので、この回で各行の意味を詳しくみてみよう。書いてあることが分かれば編集作業も怖くなくなる。

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

 1行目の、疑問符で囲まれたちょっと変わった記述は「XMLテキスト宣言」だ。XHTMLはSGMLを祖先とするHTMLではなく、その実態はXMLである。冒頭でそれをはっきりさせておくのだ。宣言の頭とお尻に疑問符が付いているのは、以下に出てくるHTMLタグやマーク付け宣言と区別するため。XMLの世界ではこうして囲んであるものを「処理命令」とみなし、XML向けのアプリケーションで処理することを要求するために付ける。

 ここに含まれるもう1つの重要な記述はテキストエンコードの指定だ。XHTMLはデフォルトでUnicodeのUTF-8かUTF-16を使うことになっており、前者のほうが対応するブラウザが多い。そのため文字のエンコードはUTF-8を選ぶのが無難だ。無論宣言するだけではダメでXHTMLを編集するテキストエディター自体がこのエンコードに対応している必要がある。また、文字コードの種類のように、要素に対する属性は(””)ダブルクォーテーションで挟んで定義するのがコーディングの基本である。どちらか一方が欠けるとブラウザがエラーを起こすので注意しよう。

--------------------------------------------------------------
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
--------------------------------------------------------------

 ?の次は!と混乱しそうだが、感嘆符は記述が出力するのを無効化する書き方だ。これに続く記述は文書型宣言(DTD)というもので、XHTMLやHTMLのバージョンを指定するために必要な記述になる。この部分は選択したバージョンごとに一字一句W3Cなどの標準化団体が定めた書き方があるので、1文字たりとも勝手に変えることはできない。単なる説明書きに見える記述だが、実はきちんと宣言していないとCSSのレンダリングにエラーが生じるのでおろそかにできない。

 ここまでが「実体宣言」といわれる記述で、正確にはコンテンツの詳しい説明にあたる「メタデータ」には含まれない部分だ【図1】。コンテンツが箱だとすれば、箱の存在する空間を定義するのが実体宣言で、箱の説明がメタ、箱の中身がコンテンツ、とイメージしてほしい。

図1 XHTMLではXML宣言を含む実体部分と、メタ情報を記述するhead部分をあわせた部分がコードの前半となる。実体の対概念を要素とするならば、html宣言以下はすべて要素としてくくることもできる

--------------------------------------------------------------
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
--------------------------------------------------------------

 ここからは「実体」部分から「要素」の記述に入る。要素にはブラウザ上に反映する記述が含まれる。上記のhtml要素には「XML名前空間」という少々難しいモノが出てくる。XMLを作るなら理解する必要はあるが、XHTMLを作るだけなら機能と目的だけを押さえるので十分だ。xmlnsの部分をかみ砕くなら「このHTMLに含まれるタグはW3Cのメンバーが標準化したものだよ」となる。こちらも指定の記述を使うのがきまりだ。

 ns=名前空間とは簡単にいうと、同姓同名の人間に住所の情報を与えることで意味の重複を避けるようなこと。例えば<myaddress>のように用途別で任意のタグが使えるXMLのコードの中で<title>というタグを「作品名」を示す用途に使いたいとなればどうすればよいか。そういうときにあるURIを名前空間として定めてやることで、意味の重複を避けるのである。単に仮想の空間を指定することが目的なので、URIの先には参照するデータがなくてもよい。

 名前空間の指定の次は言語コードの指定が来る。「ja」は日本語が使われていることを表している。

--------------------------------------------------------------
<head>
--------------------------------------------------------------

 さて、やっと真のメタ情報を記述する時がやってきた。ここからは比較的慣れ親しんだ古来HTMLの記述が続く。この部分がHTML全体の前半(頭)であることを示すheadタグで始める。

--------------------------------------------------------------
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
--------------------------------------------------------------

 ページの仕様書とも言えるmetaにはまず、コンテンツのデータと文字コードを記載する。先ほどはXMLの仕組みに対して文字コードを宣言したが、ここは幅広いブラウザ(クライアント)に理解してもらうための記述になる。タグの終わりにスラッシュがついているが、XHTMLには終了タグのない「空要素」という種類のタグをこのように記述する決まりがある。

--------------------------------------------------------------
<meta http-equiv="Content-Language" content="ja" />
--------------------------------------------------------------

 こちらも前述と同様、念のため記述する空要素となる。

--------------------------------------------------------------
</head>
--------------------------------------------------------------

 headタグを閉じて前半部分の記述を終える。

 正しい形式に沿ったコードの記述はサイト制作ツールが請け負ってくれるし、プロのコーダーにお願いすることで作れるが、ここで説明した内容くらいは一般教養の範囲であろう。制作に関わる身であれば今一度確認したい。ところで今回説明したheadの部分、あえて大切な「アレ」を書いていない。さてアレとは何か・・・?答えは次週に持ち越そう。