XHTMLとHTML

XHTMLはXMLアプリケーションであるため、SGMLベースのHTML4で完全に合法であった特定のプラクティスを変更する必要があります。前の章でXHTML構文を見たことがあるので、XHTMLとHTMLの違いは非常に明白です。以下は、XHTMLとHTMLの比較です。

XHTMLドキュメントは整形式でなければなりません

整形式性は、XMLによって導入された新しい概念です。基本的に、これはすべての要素に終了タグが必要であり、それらを適切にネストする必要があることを意味します。

CORRECT: Nested Elements

<p>Here is an emphasized <em>paragraph</em>.</p>

INCORRECT: Overlapping Elements

<p>Here is an emphasized <em>paragraph.</p></em>

要素と属性は小文字である必要があります

XHTMLドキュメントでは、すべてのHTML要素と属性名に小文字を使用する必要があります。XHTMLドキュメントはXMLドキュメントであると想定され、XMLでは大文字と小文字が区別されるため、この違いが必要です。たとえば、<li>と<LI>は異なるタグです。

すべての要素に終了タグが必要です

HTMLでは、特定の要素で終了タグを省略できます。ただし、XMLでは終了タグを省略できません。

CORRECT: Terminated Elements

<p>Here is a paragraph.</p><p>here is another paragraph.</p>
<br><hr/>

INCORRECT: Unterminated Elements

<p>Here is a paragraph.<p>here is another paragraph.
<br><hr>

属性値は常に引用する必要があります

数値を含むすべての属性値は引用符で囲む必要があります。

CORRECT: Quoted Attribute Values

<td rowspan="3">

INCORRECT: Unquoted Attribute Values

<td rowspan=3>

属性の最小化

XMLは属性の最小化をサポートしていません。属性と値のペアは完全に記述する必要があります。コンパクトやチェックなどの属性名は、値が指定されていない要素では使用できません。

CORRECT: Non Minimized Attributes

<dl compact="compact">

INCORRECT: Minimized Attributes

<dl compact>

属性値での空白の処理

ブラウザが属性を処理するとき、次のことを行います-

  • 先頭と末尾の空白を削除します。

  • 1つ以上の空白文字(改行を含む)のシーケンスを単一の単語間スペースにマップします。

スクリプトとスタイルの要素

XHTMLでは、スクリプト要素とスタイル要素に「<」と「&」の文字が存在する場合、それらを直接含めることはできません。その後、それらはマークアップの開始として扱われます。「<」や「&」などのエンティティは、それぞれ「<」や「&」の文字を表示するために、XMLプロセッサによってエンティティ参照として認識されます。

スクリプトまたはスタイル要素のコンテンツをCDATAマークの付いたセクション内でラップすると、これらのエンティティの展開が回避されます。

<script type="text/JavaScript">
   <![CDATA[
      ... unescaped VB or Java Script here... ...
   ]]>
</script>

別の方法は、外部のスクリプトとスタイルドキュメントを使用することです。

idおよびname属性を持つ要素

XHTMLでは、name属性をid属性に置き換えることをお勧めします。XHTML 1.0では、これらの要素のname属性は正式に非推奨になり、XHTMLの後続のバージョンで削除されることに注意してください。

事前定義された値セットを持つ属性

HTMLとXHTMLには両方とも、事前定義された制限された値のセットを持ついくつかの属性があります。例えば、type の属性 input素子。HTMLとXMLでは、これらはenumerated attributes。HTML 4では、これらの値の解釈では大文字と小文字が区別されなかったため、TEXT の値と同等でした text

XHTMLでは、これらの値の解釈では大文字と小文字が区別されるため、これらの値はすべて小文字で定義されます。

16進値としてのエンティティ参照

HTMLとXMLはどちらも、16進値を使用して文字を参照できます。HTMLでは、これらの参照は次のいずれかを使用して行うことができます。&#Xnn; または &#xnn; それらは有効ですが、XHTMLドキュメントでは、次のような小文字のみを使用する必要があります。 &#xnn;

<html>要素は必須です

すべてのXHTML要素は、<html>ルート要素内にネストする必要があります。他のすべての要素は、ペアであり、親要素内に正しくネストされている必要があるサブ要素を持つことができます。基本的なドキュメント構造は次のとおりです。

<!DOCTYPE html....>

<html>
   <head> ... </head>
   <body> ... </body>
</html>