<html xmlns="http://www.w3.org/1999/xhtml" a0:Name="SuikaWiki" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:Version="0.9"><head><a0:parameter name="page-icon"><a0:value>HTML</a0:value></a0:parameter></head><body><p><a0:anchor-end a0:anchor="1">[1]</a0:anchor-end> 【<a0:anchor>XHTML</a0:anchor>】 XHTML を旧来の <a0:anchor>HTML</a0:anchor> <a0:anchor>UA</a0:anchor> で<a0:weak>おそらくは</a0:weak>扱える形で記述するための指針。 <em>XHTML 1.0: The Extensible HyperText Markup Language C. HTML Compatibility Guidelines</em> <a0:anchor-external a0:resParameter="http://www.w3.org/TR/xhtml1/#guidelines" a0:resScheme="URI">http://www.w3.org/TR/xhtml1/#guidelines</a0:anchor-external></p><p><a0:anchor-end a0:anchor="2">[2]</a0:anchor-end> [処理指令及び XML 宣言] 古い <a0:anchor>UA</a0:anchor> の中には、
<a0:anchor>処理指令</a0:anchor>をそのまま表示するものや、 
<a0:anchor>XML宣言</a0:anchor>があるとその文書を HTML/XHTML ではない <a0:anchor>XML</a0:anchor>
文書として取り扱うものもあります。</p><p>ですから、処理指令や XML 宣言を使わないといいかもしれません。
(C.1)</p><p><a0:anchor-end a0:anchor="3">[3]</a0:anchor-end> <a0:anchor-internal a0:anchor="2">&gt;&gt;2</a0:anchor-internal> の場合、既定の<a0:anchor>符号化</a0:anchor>, すなわち 
<code class="charset"><a0:anchor>UTF-8</a0:anchor></code>, <code class="charset"><a0:anchor>UTF-16</a0:anchor></code>
になると附属書 C には書いてありますが、 <a0:anchor>HTTP</a0:anchor>
や <a0:anchor>MIME</a0:anchor> のような上位プロトコルから <a0:anchor>charset</a0:anchor>
情報が提供される場合はそうである必要もありません。</p><p><a0:anchor-end a0:anchor="4">[4]</a0:anchor-end> [空要素] <a0:anchor>空要素</a0:anchor>の<a0:anchor>タグ</a0:anchor>は、
<samp class="XML">&lt;br/&gt;</samp> や <samp class="XML">&lt;br&gt;&lt;/br&gt;</samp>
のような形ではなく、 <samp class="XML">&lt;br /&gt;</samp>
と書くべきです。 (C.2)</p><p><a0:anchor-end a0:anchor="5">[5]</a0:anchor-end> [要素最小化と空要素モデル] <a0:anchor>強制空要素</a0:anchor>以外の空要素は最小化
(<samp class="XML">&lt;p /&gt;</samp>) するべきではありません。
(C.3)</p><p><a0:anchor-end a0:anchor="6">[6]</a0:anchor-end> [埋め込みスタイル・シート及びスクリプト]
<code class="XML">&amp;</code>, <code class="XML">&lt;</code>, <code class="XML"> ] ] &gt; </code>,
<code class="XML">--</code>
が含まれるスタイル・シート, スクリプトは埋め込みではなく外部リンクにするべきです。
(C.4)</p><p><a0:anchor-end a0:anchor="7">[7]</a0:anchor-end> [属性値中の改行] <a0:anchor>属性値</a0:anchor>中の<a0:anchor>改行</a0:anchor>や複数の<a0:anchor>空白</a0:anchor>の連続は避けるべきです。
(C.5)</p><p><a0:anchor-end a0:anchor="8">[8]</a0:anchor-end> [Isindex] <code class="HTML"><a0:anchor>head</a0:anchor></code> 要素中の
<code class="HTML"><a0:anchor>isindex</a0:anchor></code> 要素は複数個あるべきではありません。
(C.6)</p><p><a0:anchor-end a0:anchor="9">[9]</a0:anchor-end> [ <code class="HTML">lang</code> 及び <code class="HTML">xml:lang</code> 両属性]
言語情報の指定には <code class="HTML"><a0:anchor>lang</a0:anchor></code>
属性と <code class="XML"><a0:anchor>xml</a0:anchor>:<a0:anchor>lang</a0:anchor></code>
属性を両方指定するべきです。 (C.7)</p><p><a0:anchor-end a0:anchor="10">[10]</a0:anchor-end> [素片識別子] <code class="HTML"><a0:anchor>id</a0:anchor></code> 属性を使うときはそれと対応させた
<code class="HTML"><a0:anchor>a</a0:anchor></code> 要素の <code class="HTML"><a0:anchor>name</a0:anchor></code>
属性を使用するべきです。 (C.8)</p><p><a0:anchor-end a0:anchor="11">[11]</a0:anchor-end> [文字符号化] <a0:anchor>HTTP</a0:anchor> のような上位プロトコルや
<code class="HTML"><a0:anchor>meta</a0:anchor></code> 要素を使って<a0:anchor>文字符号化</a0:anchor>の情報を与えるべきです。
(C.9)</p><p><a0:anchor-end a0:anchor="12">[12]</a0:anchor-end> [真偽型属性] <a0:anchor>真偽型属性</a0:anchor>が最小化されていない形だとうまく扱えない古い
<a0:anchor>UA</a0:anchor> があるので注意が必要です。 (C.10)</p><p><a0:anchor-end a0:anchor="13">[13]</a0:anchor-end> [文書物体モデルと XHTML] <a0:anchor>DOM1</a0:anchor> HTML
を実装した UA では、<ul><li><code><a0:anchor>text/html</a0:anchor></code> の XHTML 文書では、
<a0:anchor>HTML4</a0:anchor> 同様に要素型名などは大文字に正規化されます。
<a0:weak>(附属書 C には明記されていませんが、意図としては多分) HTML 4 で<a0:anchor>開始タグ</a0:anchor>が省略可能な要素 (<code class="HTML"><a0:anchor>tbody</a0:anchor></code> とか。) は補われます。</a0:weak></li><li>XML 系の<a0:anchor>媒体型</a0:anchor>の XHTML 文書では、
要素型名などは小文字のままです。
HTML 4 で開始タグが省略可能な要素は補われるかもしれませんし補われないかもしれません。</li></ul></p><p>(C.11)</p><p><a0:anchor-end a0:anchor="14">[14]</a0:anchor-end> [属性値中のアンド記号 (など)]
<a0:anchor>URI</a0:anchor> でよく使われるアンド記号は <code class="XML">&amp;amp;</code>
と書かなければなりません。
(C.12)</p><p><a0:anchor-end a0:anchor="15">[15]</a0:anchor-end> [段階スタイル・シートと XHTML]
<a0:anchor>CSS2</a0:anchor> を使うときに、<ul><li><a0:anchor>選択子</a0:anchor>で要素型名は小文字にします。</li><li>HTML 4 で開始タグが省略可能な要素 (<code class="HTML">tbody</code> など)
を選択子で使うときには<a0:anchor>文書実現値</a0:anchor>中でも明示します。</li><li><code class="CSS">#</code> (識別子) 選択子が使えます。</li><li><code class="CSS">.</code> (級) 選択子が使えます。</li><li><code>text/html</code> の XHTML 文書には HTML 向けの、 
XML 系の媒体型の XHTML 文書には XML 向けの適合性規則が適用されます。</li></ul></p><p>(C.13)</p><p><a0:anchor-end a0:anchor="16">[16]</a0:anchor-end> [XML として供給する時に <code class="HTML">style</code> 要素を参照する]
XML な媒体型の XHTML 文書では、<pre>&lt;?xml-stylesheet href=&quot;#css&quot; type=&quot;text/css&quot;?&gt;
 <ins>...</ins>
&lt;style type=&quot;text/css&quot; id=&quot;css&quot;&gt;
 <ins>...</ins>
&lt;/style&gt;</pre></p><p>とするべきです。 (C.14)</p><p><a0:anchor-end a0:anchor="17">[17]</a0:anchor-end> [空白文字] 幾つかの文字は XML では不正です。
例えば <code class="char">FORM FEED</code> とか。 (C.15)</p><p><a0:anchor-end a0:anchor="18">[18]</a0:anchor-end> [名前文字参照 <code class="XML">&amp;apos;</code>]
名前文字参照 <code class="XML">&amp;<a0:anchor>apos</a0:anchor>;</code> は使うべきではありません。
(C.16)</p><ul><li><a0:anchor-end a0:anchor="19">[19]</a0:anchor-end> 互換性指針は旧来の HTML との互換性を保ちたい場合の指針であって、 XHTML を使うに当たって必須の要件ではありません。</li><li><a0:anchor-end a0:anchor="20">[20]</a0:anchor-end> また、あくまで XHTML 1.0 の附属書であって、それ以外の XHTML や XML 応用に適用されるものでもありません。</li><li><a0:anchor-end a0:anchor="21">[21]</a0:anchor-end> しかしながら、 <code>text/html</code> として供給する X(HT)ML 文書は、可能な限りこの指針に従うのが望ましいでしょう。</li></ul><p><a0:anchor-end a0:anchor="22">[22]</a0:anchor-end>
現状について。</p><p><a0:anchor-internal a0:anchor="2">&gt;&gt;2</a0:anchor-internal> (<a0:anchor>処理指令</a0:anchor>), <a0:anchor-internal a0:anchor="10">&gt;&gt;10</a0:anchor-internal> (<a0:anchor>素片識別子</a0:anchor>),
<a0:anchor-internal a0:anchor="11">&gt;&gt;11</a0:anchor-internal> (<code class="MIME" xml:lang="en"><a0:anchor>charset</a0:anchor></code>),
<a0:anchor-internal a0:anchor="12">&gt;&gt;12</a0:anchor-internal> (<a0:anchor>真偽値属性</a0:anchor>), <a0:anchor-internal a0:anchor="14">&gt;&gt;14</a0:anchor-internal> (<a0:anchor>属性値</a0:anchor>で<a0:anchor>逃避</a0:anchor>): 
本来、対応することが <a0:anchor>XHTML 1.0</a0:anchor> だけでなく <a0:anchor>HTML 4</a0:anchor>
においても<a0:anchor>利用者エージェント</a0:anchor>の適合の条件であり、
状況は改善されているので、重要な条件ではない。
(<a0:anchor>XHTML</a0:anchor> の普通の方法で良い [<a0:anchor-internal a0:anchor="2">&gt;&gt;2</a0:anchor-internal>, <a0:anchor-internal a0:anchor="10">&gt;&gt;10</a0:anchor-internal>, <a0:anchor-internal a0:anchor="12">&gt;&gt;12</a0:anchor-internal>],
<a0:anchor>HTML</a0:anchor> でも <a0:anchor>XHTML</a0:anchor> でも同じ方法で良い [<a0:anchor-internal a0:anchor="11">&gt;&gt;11</a0:anchor-internal>, <a0:anchor-internal a0:anchor="14">&gt;&gt;14</a0:anchor-internal>])</p><p><a0:anchor-internal a0:anchor="4">&gt;&gt;4</a0:anchor-internal> (<a0:anchor>強制空要素</a0:anchor>の<a0:anchor>タグ</a0:anchor>):
完全な<a0:anchor>終了タグ</a0:anchor>は、
互換性のために異なる解釈をする<a0:anchor>利用者エージェント</a0:anchor>が残っているので、
現在でも指針に従うべきである。
斜線の前の<a0:anchor>空白</a0:anchor>については、状況は改善されているので、
現在では<a0:anchor>文書</a0:anchor>がこの条件を満たす必要性はそれほど高くはない。</p><p><a0:anchor-internal a0:anchor="5">&gt;&gt;5</a0:anchor-internal> (非<a0:anchor>強制空要素</a0:anchor>の <a0:anchor>NET可能開始タグ</a0:anchor> + 
<a0:anchor>null終了タグ</a0:anchor>):
従来の <a0:anchor>HTML</a0:anchor> <a0:anchor>利用者エージェント</a0:anchor>は単に
<code class="SGML" xml:lang="en"><a0:anchor>nestc</a0:anchor></code> を無視する
(か、もしかすると<a0:anchor>属性指定</a0:anchor>とみなす) ので、
現在でも <a0:weak>(そしておそらく将来も)</a0:weak>
指針に従うべきである。</p><p><a0:anchor-internal a0:anchor="6">&gt;&gt;6</a0:anchor-internal> (<code class="SGML" xml:lang="en"><a0:anchor>CDATA</a0:anchor></code> <a0:anchor>要素内容</a0:anchor>):
<a0:anchor><code class="XML" xml:lang="en">CDATA</code>区間</a0:anchor>と埋め込まれた言語の<a0:anchor>注釈</a0:anchor>構文の組合せで問題を回避できないこともないが、
指針に従う方が楽であることは変わりない。</p><p><a0:anchor-internal a0:anchor="7">&gt;&gt;7</a0:anchor-internal> (<a0:anchor>属性値指定</a0:anchor>の<a0:anchor>空白</a0:anchor>), 
<a0:anchor-internal a0:anchor="17">&gt;&gt;17</a0:anchor-internal> (<code class="charname" xml:lang="en"><a0:anchor>FORM FEED</a0:anchor></code>),
<a0:anchor-internal a0:anchor="18">&gt;&gt;18</a0:anchor-internal> (<code class="HTML" xml:lang="en">&amp;<a0:anchor>apos</a0:anchor>;</code>):
指針に従うのが良いが、問題になることはそれ程多くない。</p><p><a0:anchor-internal a0:anchor="8">&gt;&gt;8</a0:anchor-internal> (<code class="HTMLe" xml:lang="en"><a0:anchor>isindex</a0:anchor></code>):
元から実害はないし、 <code class="HTMLe" xml:lang="en"><a0:anchor>isindex</a0:anchor></code>
は既に使われていない。</p><p><a0:anchor-internal a0:anchor="9">&gt;&gt;9</a0:anchor-internal> (<code class="HTMLa" xml:lang="en"><a0:anchor>lang</a0:anchor></code> 属性):
指針に従うのが良い。</p><p><a0:anchor-internal a0:anchor="13">&gt;&gt;13</a0:anchor-internal> (<a0:anchor>DOM</a0:anchor>), <a0:anchor-internal a0:anchor="15">&gt;&gt;15</a0:anchor-internal> (<a0:anchor>CSS</a0:anchor>):
<a0:anchor>著者</a0:anchor>は注意しましょう。</p><p><a0:anchor-internal a0:anchor="16">&gt;&gt;16</a0:anchor-internal> (<code class="XML" xml:lang="en"><a0:anchor>xml-stylesheet</a0:anchor></code>):
しかし実際にはほとんど使われていない。</p><p>(<a0:anchor>名無しさん</a0:anchor> <a0:weak>2005-10-18 09:16:22 +00:00</a0:weak>)</p><p><a0:anchor-end a0:anchor="23">[23]</a0:anchor-end>
<cite xml:lang="en">Appendix C and XHTML 1.1</cite> (<a0:anchor>Shane McCarron</a0:anchor> 著, <time>2008-03-14 21:53:18 +09:00</time> 版) <a0:anchor-external a0:resParameter="http://lists.w3.org/Archives/Public/public-xhtml2/2008Mar/0022.html" a0:resScheme="URI">http://lists.w3.org/Archives/Public/public-xhtml2/2008Mar/0022.html</a0:anchor-external>
(<a0:anchor>名無しさん</a0:anchor>)</p></body></html>