since: 30th/Aug./2000; last modified: 28th/Sep./2001
XML ではコメントは次のように記述します:
<!--ここはコメント部です。 ハイフンを二つ繋げてはいけません。 <p>タグを直接記述しても構いません。</p> -->
XML ではコメント内部は完全に無視され得ます。したがって、内容が CDATA から PCDATA に変更された style
要素や script
要素の内容をコメントアウトすると、全く働かない可能性があります。因みに、 CDATA は Character DATA(文字データ)であり、 PCDATA は Procecced CDATA (解析処理される文字データ)のことです。
<style type="text/css"> <!-- /* コメントアウトはとても危険です 完全に無視されて、働かない場合が考えられます。*/ body { background: black; color: white }
/* 基本的には外部スタイルシートを使いましょう。 */ --> </style>
もっと詳しく言うと、 style
要素のように、内容が PCDATA に定義されているところで "<!--
" を記述すると、コメント開始区切りと解釈されます。 内容が CDATA ならばコメント区切り文字も解釈されることは無く、ユーザエージェントに無視されないですみます。 PCDATA を強制的に CDATA に変更するためには、 CDATA セクションを利用します。
PCDATA とは、パーサに解釈される文字列を指します。したがって、 PCDATA として処理されるように定義されている文字列では、 "<
" は "<" に解釈されてから実行アプリケーションに受け渡されます。これを避ける為に、内容を強制的に CDATA (それ以上解釈されない文字データ)として実行アプリケーションに受け渡す仕組みが用意されており、 CDATA セクションと呼ばれます:
<p><![CDATA[ ここは CDATA セクション内部。<p> のように タグを直接記述しても、文字実体参照 < を記述しても、解釈されないので、屁の河童です。 ]]></p>
これで、内容が PCDATA に変更された script
要素や style
要素中でも、マークアップ区切り文字が直接利用できます:
<script type="text/javascript"> //<![CDATA[ document.write('これはバナ-です: <img src="../../nextindexb.jpg" alt="NEXTindex バナ-" />'); //]]> </script>
表示概念図 | 表示例 |
---|---|
これはバナ-です:![]() |
この実装はアプリケーションソフトごとに処理方法にばらつきがあります。例えば、 Netscape 6 では、 XML ファイルとして開いた場合は CDATA セクションとして解釈されますが、 HTML 文書として開いた場合は無視されます。 MS I.E. 6 では、 PCDATA として処理するか、無視します。
このように処理が不安定なので、現状では CDATA セクションはウェブページでは利用しないようにしましょう。
CDATA セクションは現実のブラウザにおいては動作が確実ではなく、コメントの利用は規格上の誤りを含みます。これらを解決する為には、外部スタイルシート、外部スクリプトを利用するように推奨されます。
<head> ...省略... <link rel="stylesheet" madia="screen" type="text/css" href="./core.css" title="Core Style Sheet" /> </head>
<body> <script type="text/javascript" src="./script.js"></script> <noscript><p>ご利用の環境はスクリプトをサポートしていません。 <a href="./data.html">ファイル</a>を直接アクセスしてください。 </p></noscript> </body>