Home
Über mich
Blog
Veröffentlichungen
IT-Trainings
Impressum


CDATA-Kommentare in XML

Neben Standard-Kommentaren gibt es noch CDATA-Kommentare. Im Unterschied zu den Parsed Character Data (PCDATA), die durch einen Parser verarbeitet werden, beinhalten CDATA-Kommentare Daten, die nicht geparst werden. CDATA-Kommentare beginnen mit <![CDATA[ und enden mit ]]>. CDATA-Kommentare erlauben beispielsweise, Scripting-Code oder komplexe XML Dokumente einzufügen - und deren Inhhalte vor etwaiger Validierung gegen DTD oder XML Schema zu schützen.

Ein Einsatzbereich ist etwa die Verwendung von CDATA-Kommentaren in Windows Scripting-Dateien, die im Kern XML Dokumente darstellen, deren Scriptanteile jedoch über den Windows Script Host ausgeführt werden können.

<?xml version="1.0" encoding="ISO-8859-1"?>
<job id="T1">
    <comment>
        <c1>File: dosomething.wsf</c1>
        <c1>Author: Wilfried Grupe</c1>
        <c1>Datum: 02.05.2016 12:45:40</c1>
        <c1>Description: writes Hello</c1>
    </comment>
    <script language="VBScript">
<![CDATA[
sub dosomething
    wscript.echo "Hallo"
end sub
]]>
    </script>
    <script language="JScript">
<![CDATA[
try { 
    // calling vbscript from JScript:
    dosomething(); 
}
catch(e) { 
    // Exceptionhandling in case something is going wrong
    WScript.echo(e.description); 
}
]]>
    </script>
</job>

Einen vergleichbaren Einsatzzweck findet der CDATA-Kommentar in ANT, wo mittels Javascript mehrere ANT-Echoaufrufe generiert werden, die im Ergebnis das untenstehende Bild ergeben.

  <target name="jstest">
    <script language="javascript">
    <![CDATA[          
      for(var z=0; z<15;z++){
        var str="";        
        for(var s=0; s<48; s++) {
          if(    z===s || s+z===14 
            || s===17 || s===31  || s===33 
            || (z==14 && s > 33) 
            || (z < 8) &&(s===17+z || z+s===31 )){
            str = str + "#";
          }
          else str = str + " ";
        }      
        var ve = MYANTPROJECT.createTask("echo");
        ve.setMessage(str);
        ve.perform();
      }        
    ]]>
    </script>
  </target>

pic/jstest.png

In xsl:output kann definiert werden, welche Elemente in CDATA-Section dargestellt werden sollen:

<xsl:output method="xml" indent="yes" 
     cdata-section-elements="erg wert" />

qrpic/Kommentare1.jpg

wg / 30. September 2017




Fragen? Anmerkungen? Tips?

Bitte nehmen Sie Kontakt zu mir auf (info10@wilfried-grupe.de).



Vielen Dank für Ihr Interesse an meiner Arbeit.


V.i.S.d.P.: Wilfried Grupe * Klus 6 * 37643 Negenborn

Mobil: 0151. 750 360 61 * eMail: info10@wilfried-grupe.de