XHTMLには様々な規則があります。HTMLでは許されていた記述法が、XHTMLでは厳格化されています。この節では、XHTML記述における規則について説明します。
XHTMLでは要素、属性は小文字で記述します。XHTMLの場合、大文字と小文字は厳密に区別され、a と A は違うものと解釈されます。HTMLの場合には、それほど意識することもなかったのですが、XHTMLに関してはそのように区別されますので注意が必要です。CSSの記述にも同様ですので、基本的には小文字で書くようにしましょう。HTMLでは、属性値となるものに引用符を利用しない場合が許されています。しかし、XHTMLではすべての属性値について、必ず引用符で囲まなければなりません。HTML <table width=500 cellspacing=0 cellpadding=0> XHTML <table width="500" cellspacing="0" cellpadding="0">
HTMLでは通常、空要素は空要素としてそのままですが、XML文書でもある XHTMLでは必ず終了の合図が必要なのです。HTML <col span=2 class="banban> XHTML <col span="2" class="banban" />
XHTMLでは、スタイルシートとスクリプトは #PCDATA でパース (解釈) されます。HTMLでは、スタイルシートやスクリプトを直接文書に埋め込む場合、それらに対応していないブラウザのためにコメントで囲みます。<style type="text/css"> <-- スタイルの記述 -->
「 < 」は、#PCDATAでパースされるので、そのまま要素の始めと受け取られる危険があります。特にスクリプトでは、&& という論理積を記述する場合があり、スクリプトと処理される前に実体参照としてパースされ、やはり危険です。CDATAセクションを設ける方法があります。
<script type="text/javascript">
<![CDATA[
〜 スクリプトの記述
]]>
</script>
CDATAセクションがそのまま表示されてしまう危険もあります。HTMLではまったく気にすることがなかったのですが、XHTMLでは、最小化された属性についての規則があります。「最小化」とは値を持たない属性のことです。HTMLにおけるフォーム内の記述です。<option value="XHTML Lectur" selected>XHTML講座</option>
selected属性を、XHTMLでは、以下のように記述します。
<option value="XHTML Lectur" selected="selected">XHTML講座</option>
XHTML文書は属性値を空にできません。HTMLでは、特定の要素に終了タグの省略が許されているものがあります。tr、th要素、リストアイテムの li要素、段落を表す p要素などは省略されても問題がありませんでした。それは Webブラウザ側で終了タグを補完してくれたからに過ぎません。XHTMLでは、すべての要素に終了タグの記述が求められ、省略は許されていません。習慣的に省略されている方には、十分注意してください。XHTMLLは XML文書です。必須ではありませんが、XHTML1.1 では文書の先頭で XML宣言をすることが強く求められています。宣言は、XMLのバージョンと使用する文字符号セットを共に宣言します。特に文字コードが国際符号化文字集合の UTF-16 あるいは UTF-8 以外で、上位のプロトコルでも文字符号が示されていない場合には、必ず XML宣言を行う必要があります。<?xml version="1.0" encording="Shift_Jis"?>
<? 〜 ?> この書式は処理命令を表しています。