XHTMLとHTMLの違い

基礎で述べたこと以外で、XHTMLに移行する際に気をつけなければならないことをまとめてみます。

script要素とstyle要素

HTMLではscript要素style要素の内容は、#CDATA(通常の文字データ)として扱われていたのに対し、XHTMLでは#PCDATA(解析処理される文字データ)として扱われます。したがって、「<」、「>」、「&」といった文字は、文字参照を使って表現することになります。script言語やスタイル言語を文字参照で書き直すのは容易ではないので、以下のような手法を用います。

#CDATAとして扱わせる

#CDATAとして扱わせたい部分を『<![CDATA[』、『]]>』で囲います。

<style type="text/css">
<![CDATA[
:
]]>
</style>

ブラウザによっては対応していないものがあります。

外部ファイルにする

スタイルファイル、スクリプトファイルを外部の別ファイルにします。外部ファイルはXHTMLではないので通常の文字データとして解釈されます。XHTMLでは、外部ファイルにすることが推奨されています。

空要素

空要素は<要素名 />で記述します。該当するのは、area, base, basefont, br, col, frame, hr, img, input, isindex, link, meta, paramの要素です。

属性値

属性値は必ず「"」で囲みます。数値であっても「"」の省略はできません。また、属性値の略記は認められていません。

<input type="radio" name="age" checked>

は、HTMLでは正しいですが、XHTMLでは以下のように記述しなければなりません。

<input type="radio" name="age" checked="checked">

その他

他に気をつけるべきことをまとめておきます。