5. DTDを意識しよう
まずは、XHTMLのDTDを意識してみよう。XHTMLにもいくつかのバージョンが存在するが、 本ページで使用するのは、XHTML 1.0と呼ばれるものだ。
先の「test.html」をXHTML 1.0 Strict DTD に対応させるためには、 下のソースのように強調部分を追加する。
<?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">
<head>
<title>とにかく作ろう</title>
</head>
<body>
<p>初めてのWebページ</p>
</body>
</html>
XML宣言
XHTMLは、XMLをベースとしたHTMLである。 そのため、1行目に「これはXML文書ですよ」という宣言を記述する。
<?xml version="1.0" encoding="UTF-8"?>
このとき注意することはecoding="UTF-8"の「UTF-8」の部分である。 ここには、エンコーディング形式を指定する。 エンコーディングは、テキストエディタで作成したときの保存文字コードのことだ。 つまり、テキストエディタでHTMLファイルを作成する場合は、 どのような文字コードを使用しているのか、常に意識する必要がある。 以下に、代表的な文字コードと、それを表すエンコーディング文字列を上げておく。
- UTF-8(Unicode)コード
- 1文字を可変長のバイト列に変換する方式。 「UTF-8」あるいは「utf-8」と記述する。
- UTF-16(Unicode)コード
- 2バイト文字の範囲はそのまま表現し、2バイトでは足りない部分は4バイトで表現する方式。 「UTF-16」あるいは「utf-16」と記述する。
- JISコード
- JIS規格によって規定されている文字コード方式。 「ISO-2022-JP」あるいは「iso-2022-jp」と記述する。
- Shift(シフト) JISコード
- Microsoft社によって策定された文字コード方式。 「SHIFT_JIS」あるいは「Shift_JIS」、 「shift_jis」と記述する。
- 日本語EUCコード
- 日本語UNIXシステム諮問委員会の提案に基づいて1985年にAT&T社が定めた方式。 「EUC-JP」あるいは「euc-jp」と記述する。
DOCTYPE宣言
修正した「test.html」の2行目から4行目が使用する文法、すなわちDTDの指定をする部分になる。
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
この部分をDOCTYPE宣言と言い、ここで使用するDTDを宣言する。 DTDが3種類あることは前に言ったが、それぞれ記述する形式は決まっている。
- Strict
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- Transitional
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- Frameset
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
属性の指定
要素を表現するためにタグを使用する訳だが、 その要素に対する補助情報を与えるものが属性である。 属性は、開始タグにのみ記述できる。また、記述できる属性の種類、 必ず書かなければならない属性、省略できる属性などの区別もすべてDTDに基づいている。
タグへの属性の書き方は次のようになる。
<要素名 属性1 属性2・・・>
このとき要素名と属性の間、属性を複数記述する場合は、その間を1つ以上の空白で区切る。
次に属性そのものは次のような書き方になる。
属性名="属性値"
注意することは、属性名と属性値は等号(=)で結び、属性値は必ず引用符(")で囲まれることだ。
html要素の属性
html要素にも複数の属性があるが、「test.html」では、3種類の属性を使用している。
- xmlns="http://www.w3.org/1999/xhtml"
- xmlns属性は、名前空間と呼ばれるもので、 XML固有のものである。XHTMLの場合には記述するが、 省略も可能だ。なお、HTMLの場合には、記述しない。
- xml:lang="ja"
- xml:lang属性は、言語コードを指定する。我々は日本語を使用するので、 「ja」を指定する。これもXML固有のもので、HTMLの場合には記述しない。
- lang="ja"
- この属性もxml:lang属性と同じ働きをする。通常、XHTMLの場合には記述しなくても良いのだが、 現状では、HTMLとの互換性を考慮して記述する。すなわち、HTMLの場合には記述する属性である。