ビギナーズコーナー:HTMLからXHTMLへ (2)
2001年08月02日作成
(株)日本ユニテック 榎本 実幸
XHTML1.0で使用できる要素や属性は、HTML4.0で決められていた要素や属性とほとんど同じです。XHTML文書では、HTML文書の構成要素に加え、XML文書として必要な情報を追加する必要があります。また、文法的により厳密なマークアップが要求されます。
XHTML1.0文法の主なポイントは、以下のとおりです。
① xml宣言が指定されている。
② html要素にxmlns属性が指定されている。
③ 要素名、属性名は小文字で書かれている。
④ 終了タグを省略しない。
⑤ 空要素が正しく書かれている。
⑥ 正しい入れ子関係である。
⑦ 属性値は引用符で囲まれている。
⑧ 特殊文字がエスケープされている。
① xml宣言の指定
xml宣言は、文書の先頭に書かれ、続くデータがXML文書であることを示します。
version属性は必須で、現在のXMLのバージョン"1,0"を指定します。encoding属性は、使用する文字コードを指定します。文字コードがUTF-8、またはUTF-16の場合、encoding属性は省略できます。
<?xml version="1.0" encoding="Shift_JIS"?>
<html xmlns="http://www.w3.org/1999/xhtml"
xml:lang="ja" lang="ja">
・・省略・・
</html> |
② html要素にxmlns属性を指定する
xmlns属性は、どのタグセットに従ったXML文書なのかを明記します。xmlns属性値に、"http://www.w3.org/1999/xhtml"を指定して、文書がXHTMLのタグセットに従っていることを明記します。
さらに、html要素には、使用する言語名を属性で指定します。
<?xml version="1.0" encoding="Shift_JIS"?>
<html xmlns="http://www.w3.org/1999/xhtml"
xml:lang="ja" lang="ja">
・・省略・・
</html> |
※DOCTYPE宣言を指定する場合
DOCTYPE宣言は、文書のDTDを指定します。文書にDOCTYPE宣言でXHTMLのDTDを指定しておくと、指定されたXHTMLのDTDに従ったXML文書として扱われます。
例)XHTMLのDTD、XHTML 1.0 strictを指定する場合
<?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">
・・省略・・
</html> |
③ 要素名、属性名は小文字で書く
XHTMLでは、要素名、属性名はすべて小文字で表記する約束になっています。HTMLでは小文字大文字を区別しませんでしたが、XMLでは区別するので、気をつけましょう。
○ <p>こんにちは</p>
× <P>こんにちは</P> |
④ 終了タグの省略不可
HTMLでは、pやliなど、一部の要素の終了タグを省略することができました。
しかし、XMLでは、終了タグの省略は許されません。
○ <p>こんにちは</p>
<p>こんばんは</p>
× <p>こんにちは
<p>こんばんは</p> |
⑤ 空要素の表記
要素の内容をもたない要素は、"/>"で開始タグを閉じるか、または、開始タグに続けて、終了タグも書きます。
○ <img src="icon.gif" />
○ <img src="icon.gif"></img>
× <img src="icon.gif"> |
⑥ 正しい入れ子関係
親子関係の要素は、正しく内包されていなければなりません。
○ <p><a href="toc.html">目次へ</a></p>
× <p><a href="toc.html">目次へ</p></a>
⑦属性値は引用符で囲む
属性値はすべて、ダブルクォーテーション(")か、シングルクォーテーション(')で囲まれていなければなりません。また、HTMLでは一部の属性で、属性名を省略して属性値だけ書くことが許されていました。しかし、XHTMLでは許されません。すべて、属性名="属性値"で表記します。
○ <img src="icon.gif" />
× <img src=icon.gif />
○ <input type="checkbox" name="yes" checked="checked"
/>
× <input type="checkbox" name="yes" checked
/> |
⑧特殊文字のエスケープ
タグ以外で<や>などの記号を使う場合は、XMLパーサがタグとして認識しないよう、&実体参照名;でエスケープします。
○ <p> x + y < 10 </p>
× <p> x + y < 10 </p> |
※スクリプトデータ内の特殊文字をエスケープする
script要素やstyle要素を使って、XHTML文書内にスクリプトデータやスタイルシートを記述する場合、全体をCDATAセクションで囲むと、XMLパーサのチェック対象外となります。XHTMLではCDATAセクションにすることが推奨されていますが、今のところ、IE5.5では、CDATAセクションとして記述するとエラーになります。対処方法として、スクリプトデータやスタイルシートは外部ファイルにする方法があります。
>>次の連載記事「XHTML Basic」を読む
関連サービス
"HTML 5" を含む最新IT技術についての動向調査業務