CDATA-Abschnitte (Zeichendaten) |
    <![CDATA[unescaped character & markup data]]>
XML-Dokumente bestehen aus Markup und Zeichendaten. Die Zeichen < und & können innerhalb normaler Zeichendaten nicht verwendet werden ohne eine Zeichen- oder Entity-Referenz wie &amp; bzw. &#38; zu verwenden. Durch den Einsatz einer Referenz werden die resultierenden Zeichen < und & vom Parser nicht als Markup interpretiert, sondern werden Teil des Datenstroms, der vom Parser an seine Client-Anwendung übergeben wird. Für umfangreiche Blöcke an Zeichendaten – insbesondere Daten, die Markup enthalten, etwa ein HTML- oder XML-Fragment – kann ein CDATA-Abschnitt verwendet werden. Innerhalb eines CDATA-Abschnitts werden alle Zeichen zwischen dem Anfangs- und Abschluss-String als Zeichendaten behandelt. Somit lassen sich Sonderzeichen ordnungsgemäß in einen CDATA-Abschnitt einfügen, die einzige Ausnahme bildet die CDATA-Abschlusssequenz ]]>. CDATA-Abschnitte sind dafür geeignet, in Anleitungen über Markup den XML- oder HTML-Beispielcode als Text zu definieren. (Allerdings ist es schwierig, mit XSLT, DOM oder SAX den Inhalt von CDATA-Abschnitten anders zu verarbeiten als in Form von Text.) CDATA-Abschnitte lassen sich nicht verschachteln. Die Zeichensequenz ]]> darf nicht innerhalb von Daten erscheinen, die ihrer Code-Funktion enthoben wurden, da sonst der CDATA-Abschnitt vorzeitig abgeschlossen wird. Normalerweise sollte diese Vorschrift kein Problem darstellen, wenn jedoch eine Anwendung XML-Dokumente als nicht analysierbare Zeichendaten verwendet, ist es wichtig, sich dieser Einschränkung bewusst zu sein. Wenn es notwendig ist, die CDATA-Abschlusssequenz in die Daten einzufügen, schließen Sie den geöffneten CDATA-Abschnitt, fügen die abschließenden Zeichen mit Hilfe von Zeichenreferenzen ein und öffnen dann einen neuen CDATA-Abschnitt, der den Rest der Zeichendaten aufnimmt.