XHTMLと HTML

みるくあいらんどっ! > ドキュメント > XML > 基礎だけ学ぶ XML講座 [初心者向け・入門]


XHTMLと HTML

HTMLを書いた経験がある方であれば、「XML文書はHTML文書のような雰囲気だな」と思われるかもしれません。XMLとHTMLは、ともに、SGMLという言語と関係していることがあって、雰囲気も似ています。この章では、用語の振り返りと、両者の共通点、それから両者の異なる点について解説します。

狭義のHTMLとは、HTML形式のことです。HTMLはSGMLの応用規格のひとつです。そして、XHTMLとは、HTMLをXMLのルールに合わせた規格です。HTML形式の文書は、基本的にはXMLに求められるルールを満たしていない可能性が高いです(偶然に満たすこともあります)。一方で、XHTMLは、常にXML文書です。

なお、広義でHTMLと言った場合には、HTMLとXHTMLの両方を含んだもの、文脈によっては、JavascriptやCSSなどまで含んだものを表す場合があります。本章では狭義のHTMLについて扱います。

HTMLと XHTMLの混乱する点

XHTML文書もHTML文書もウェブページとして存在する場合が多く、どちらの文書もウェブブラウザ(InternetExplorerやFirefoxなど)によって、ウェブページとして表示されます。また、XHTML文書もHTML文書も、拡張子は多くの場合、.htmlあるいは.htmであり、ファイル名によって見分けることもできません。

HTMLと XHTMLの具体的な違い

XML文書でもあるXHTMLと、XML文書ではないHTML。両者を比較することで、XML文書の特徴が見え、また、XML文書を記述するときの注意点にもなると思い、大きな違いを 3点のみ具体的に記述します。

大文字と小文字を区別する

HTMLでは、要素名や属性名には大文字と小文字のどちらを使用しても良いこととなっています。しかし、XMLでは大文字と小文字は別に扱われることになっています。そのため、XHTMLでは、要素名や属性名は小文字で記述しなければならないことになっています。

HTMLの例

<P>このウェブサイトでは<STRONG>XMLについて</STRONG>学習します。</P>
<p ID="sub">ときどき<Em>HTML</Em>も登場します。</p>

XHTMLで記述したもの

<p>このウェブサイトでは<strong>XMLについて</strong>学習します。</p>
<p id="sub">ときどき<em>HTML</em>も登場します。</p>

属性値の前後の引用符を省略できない

HTMLでは、属性値の前後の引用符を省略することができました。XMLでは、属性値は二重引用符または引用符で囲わなければなりません。

HTMLの例

<textarea name="test" cols=50 rows=8></textarea>

XHTMLで記述したもの

<textarea name="test" cols="50" rows="8"></textarea>

終了タグを省略できない

HTMLでは、要素によっては開始タグのみを書けば良く、終了タグを省略することができます。XMLでは終了タグは必須、または開始タグの末尾に「/」を記述しなければならないので、XHTMLでも同様に記述しなければなりません。

HTMLの例

<form>
	<input type="submit" value="実行">
</form>
改行します。<br>

XHTMLで記述したもの

<form>
	<input type="submit" value="実行"></input>
</form>
改行します。<br />

これらの他に hr要素、img要素などが影響を受けます。

属性値を省略できない

HTMLでは要素の属性について、属性名だけを記述することができました。XMLでは属性名を記述したら、属性値も記述しなければなりません。そのため、XHTMLでも属性値を記述するルールになっています。

HTMLの例

<form>
	<label>
		<input tpye="checkbox" name="flag" value="1" checked>
		同意します
	</label>
</form>

XHTMLで記述したもの

<form>
	<label>
		<input tpye="checkbox" name="flag" value="1" checked="checked" />
		同意します
	</label>
</form>

checked属性の他に、option要素の selected属性、td要素、tr要素の nowrap属性などが影響を受けます。

最終更新: 2014/03/29 , 公開: 2014/03/14
▲top