XML CDATA


XML ドキュメント内のすべてのテキストはパーサーによって解析されます。

CDATA セクション内のテキストのみがパーサーによって無視されます。


PCDATA - 解析される文字データ

XML パーサーは通常、XML ドキュメント内のすべてのテキストを解析します。

XML 要素が解析されるとき、そのタグ間のテキストも解析されます:

<message>This text is also parsed</message>

パーサーがこのようにするのは、XML 要素が他の要素を含むことができるからです。この例では、<name> 要素が他の2つの要素(first と last)を含んでいます:

<name><first>Bill</first><last>Gates</last></name>

そしてパーサーはそれを次のような子要素に分解します:

<name>
<first>Bill</first>
<last>Gates</last>
</name>

解析される文字データ(PCDATA)は、XML パーサーによって解析されるテキストデータを指す用語です。


CDATA - (未解析の)文字データ

CDATA という用語は、XML パーサーによって解析されるべきではないテキストデータを指します。

"<" や "&" などの文字は XML 要素内では不正です。

"<" はエラーを引き起こします。パーサーがその文字を新しい要素の開始として解釈するためです。

"&" はエラーを引き起こします。パーサーがその文字を文字実体の開始として解釈するためです。

JavaScript コードなどの一部のテキストには、多数の "<" や "&" 文字が含まれます。エラーを避けるために、スクリプトコードを CDATA として定義できます。

CDATA セクション内のすべての内容はパーサーによって無視されます。

CDATA セクションは "<![CDATA[" で始まり、"]]>" で終わります:

<script>
<![CDATA[
function matchwo(a,b)
{
if (a < b && a < 0) then
{
return 1;
}
else
{
return 0;
}
}
]]>
</script>

上記の例では、パーサーは CDATA セクション内のすべての内容を無視します。

CDATA セクションに関する注記:

CDATA セクションには文字列 "]]>" を含めることはできません。また、CDATA セクションのネストも許可されません。

CDATA セクションの終わりを示す "]]>" には、スペースや改行を含めることはできません。


その他の拡張