XHTML/CSS・トップ | XHTML・目次

●XHTML文書のDTDとhtml要素に指定する属性

 XHTML文書におけるXML宣言・DOCTYPE宣言とhtml要素の開始タグに付加する属性(xmlns属性・xml:lang属性・lang属性)について解説します。

■XML宣言と文字コードについて

<?xml version="1.0" encoding="Shift_JIS"?>

【解説】↑↓

 XML宣言した場合、XHTML1.0・XHTML1.1・XHTML Basic 1.0いずれの場合でも上記のXML宣言を文書の先頭に記述します。文字コードを省略できる場合もありますが、使用する文字コード体系によっては必須のものです。encoding属性の値として、文字コードを付加しましょう。XML宣言すると、IE(6.0)では常に互換モードで表示されますが、記載することが推奨されています。XML(XHTML)では大文字と小文字は区別されることになっていますが、文字コードについては大文字でも小文字でも構いません。なお、日本語の文字コードは次のようなものがあります。encodingの値が"Shift_JIS"以外の場合は指定したい値に置き換えてください。

文字コード 指定する値
シフトJIS Shift_JIS
JIS ISO-2022-JP
EUC EUC-JP
Unicode UTF-8
Unicode UTF-16

※XHTML Basic は携帯電話対応ページや小型機器向けのモジュール。ただし、使用できる要素や属性はXHTML1.0・XHTML1.1と比べ、限られています。

■XHTML 1.0 の3種類のDOCTYPE宣言

 使用するDTDに合わせたDOCTYPE宣言をXML宣言の後に記述します。

・XHTML 1.0 Transitional↓

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

・XHTML 1.0 Frameset↓

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

・XHTML 1.0 Strict↓

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

■XHTML 1.1 のDOCTYPE宣言

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

■XHTML Basic 1.0のDOCTYPE宣言

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">

【解説】↑↓

 XML宣言が入っているか否かによって、多くのDTDが存在することになりますが、各DTDのブラウザの表示モードについては、別項の「文書型定義(DTD)について」をご参照ください。

■xmlns属性・xml:lang属性・lang属性について

 XML文書には次のようなネームスペース(名前空間)としてxmlns属性の値に"http://www.w3.org/1999/xhtml"のURIを固定指定します。ネームスペースとはXML文書の中で自由に定義できる要素や属性の名前が重複しないようにするための仕組みとして考案されたものです。xmlns属性は厳密なXHTML文書には必須のものです。必ず、記載してください。

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

 言語を示す属性として、xml:lang属性を指定しますが、XHTML 1.0の場合はlang属性も指定できます。既存のブラウザとの互換性を考りょする場合は、このように両方を指定しておくと良いでしょう。一方、XHTML 1.1および、XHTML Basic はlang属性を使用できませんのでxml:lang属性だけを指定します。

■XHTML文書の基本形

 CSSを使うことを前提としたXML宣言・DOCTYPE宣言とhtml要素の開始タグに付加する属性を加えたXHTML文書の基本形はおおよそ、次のようになります。

・XHTML1.0(Strict DTD)↓

<?xml version="1.0" encoding="Shift_JIS"?>
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />
<title>〜</title>
<link rel="stylesheet" type="text/css" href=" 〜 .css" />
</head>
<body>
 〜
</body>
</html>

注意:meta要素に“http-equiv”属性を使い、HTTPヘッダ用のプロパティ名を指定し、content属性の値にはそのプロパティの値を指定する方法は、XHTML1.0の文書の場合、文法に沿って記述する分には、"text/html"の値を指定することもできますが、XHTML文書は厳密には"application/xhtml+xml"のContent-Typeで配信されなければなりません。XHTML1.0以外のXHTML文書におけるcontent属性のプロパティの値には、本来、"application/xhtml+xml"の値を指定しなければならないということです。meta要素におけるHTTPヘッダ用の設定を行っても実際には必ずしもサーバがHTTPヘッダとして送信するわけではないこと、Webブラウザ側でmeta要素の内容をチェックするものが多いこと、チェックをしないブラウザもあること、"application/xhtml+xml"に対応しないブラウザ(IEv8以下)もあることなどから、本稿は、XHTML1.1、XHTML Basic文書、共にmeta要素によるHTTPヘッダ用の指定を行わないことを推奨します。実際には、meta要素の設定を行っても特に問題なく動作しますが、上記の理由から設定しないほうがベストだと思います。

・XHTML1.1↓

<?xml version="1.0" encoding="Shift_JIS"?>
<!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>
<title>〜</title>
<link rel="stylesheet" type="text/css" href=" 〜 .css" />
</head>
<body>
 〜
</body>
</html>

・XHTML Basic 1.0↓

<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
<head>
<title>〜</title>
<link rel="stylesheet" type="text/css" href=" 〜 .css" />
</head>
<body>
 〜
</body>
</html>

※XHTML Basicではstyle要素および、style属性は使えません。また、XHTML1.1でstyle属性は非推奨とされています。

※link要素内のCSSファイルへのパス部分(〜)は設置環境に合わせて、入れる必要があります。そのほかのDTD(文書型定義)および、ブラウザの表示モードは別項の「文書型定義(DTD)について」をご参照ください。また、「XHTMLのルール」が解説してありますので併せてご参照ください。

2011年7月3日 更新

XHTML/CSS・目次 | XHTML・目次

Copyright (C) 2006-2011 http://www.xml.vc/ All Rights Reserved.