CDATAセクションは、通常マークアップとみなされる文字を含むテキストの塊をエスケープするのに使用される。CDATAセクション内で認識される唯一の区切り子は、文字列 "]]>" で、これはCDATAセクションを終了する。CDATAセクションは入れ子にすることはできない。区切り子のエスケープを一々求めずにXML断片等を含めるのが主要な目的である。
Text
ノードの DOMString
プロパティが、CDATAセクションに含まれるテキストを保持する。これはCDATAセクション外部でエスケープが要求される文字を含んでも よい ということ、また、シリアライズに選ばれる符号化方法(文字集合)の文字に依存して、CDATAセクションの一部に書き出せない文字があるかもしれないことに注意。
CDATASection
インターフェイスは、 Text
インターフェイスを通して CharacterData
インターフェイスを継承する。隣接する CDATASection
ノードは、 Node
インターフェイスの normalize
メソッドを使用しても融合しない。
Note: CDATASection
内部に認識されるマークアップは存在しないため、シリアライズの際にエスケープ機構として数値文字参照を使用できない。それゆえ、内包される文字に表現できないものがある文字符号化方法で CDATASection
をシリアライズする時、アクションが取られる必要がある。それに失敗すれば整形式のXMLを生成できないだろう。
シリアライズの過程における一つの可能な解決策は、その文字の前でCDATAセクションを終了し、文字参照または実体参照で文字を出力し、テキストノード内の更に先の文字のために新たなCDATAセクションを開始することである。但し、書き出しの時のコード変換ライブラリには、符号化方法から文字が欠けているときにエラーや例外を返さないものがあり、シリアライズ上データが汚染されてないことを保証するタスクをより困難にすることに注意。
interface CDATASection : Text { };