【 XMLとして扱う 】
XHTMLはXMLのサブセットなので、保存したファイルの拡張子は
.xml になる。
また、文書の一行目に次の一行を記述し、XML文書であるということをブラウザに認識させる必要がある。
<?xml version="1.0"?>
ただし、このままでは文書の文字コードセットがUTF-8またはUTF-16として扱われるので、
他の文字コードで作成した場合はそれを明示し、さらに<meta>タグでも指定する必要がある。
<?xml version="1.0" encoding="euc-jp"?>
<meta http-equiv="content-type" content="text/html;charset=euc-jp" />
<?xml version="1.0" encoding="iso-2022-jp"?>
<meta http-equiv="content-type" content="text/html;charset=iso-2022-jp" />
<?xml version="1.0" encoding="shift_jis"?>
<meta http-equiv="content-type" content="text/html;charset=shift_jis" />
【 DOCTYPE宣言をする 】
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "xhtml11.dtd">
XHTML1.0ではStrict,Transitional,Framesetを明示していたが、これはHTML4準拠の指定だったので
XHTML1.1ではこれを廃止して上記のように指定ことになりました。
【 言語と名前空間を参照する 】
<html>タグの中で次の名前空間を参照すること。同時に文章で主に使われる言語を指定する。
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
【 終了タグを明記する 】
HTMLの悪しき習慣の一つに「終了タグを明記しなくても表示できる」ことがあったが、この習慣は
XHTML(XML)では通用しない。XHTMLでは必ず開始タグと終了タグがセットになっていなければいけない。
正:<p>XHTMLはXMLのサブセットである。</p>
誤:<p>XHTMLはXMLのサブセットである。
また、終了タグが存在しないもの(空要素)は最後に /(スラッシュ)を挿入する。
<img src="./images/sample.png" />
<br />
【 要素をネストさせる 】
今までのHTMLでは要素を重なり合わせても問題がなかったが、これはXHTML文書では許されない。
下記の「誤」では<i>タグ<b>タグの順に開始しているのにもにも関わらず、<b>が終了する前に<i>タグが終了してしまっているのでエラーになる。
正:<i><b>XHTML</b>はXMLのサブセットである。</i>
誤:<i><b>XHTML</i>はXMLのサブセットである。</b>
【 属性値は引用符で括る 】
HTML4では「属性値が数値の場合は引用符で括らなくてもよい」という条件があったが、これはXHTMLには適用できない。
XHTMLでは属性値をダブルクォートまたはシングルクォートで必ず括らなければいけない。
正:<table width="300"> , <table width='300'>
誤:<table width=300>
【 最小属性値を使わない 】
HTML4では属性に値がないものもあったが、これはXHTMLでは許されない。。
正:<input type="radio" checked="checked">
誤:<input type="radio" checked>