CDATA Sections
When an XML document includes samples of XML or HTML source code, the <
and &
characters in those samples must be
encoded as <
and &
. The more sections of literal code
a document includes and the longer they are, the more tedious this
encoding becomes. Instead you can enclose each sample of literal code
in a CDATA section . A CDATA
section is
set off by <![CDATA[
and ]]>
.
Everything between the <![CDATA[
and the ]]>
is treated as raw
character data. Less-than signs don’t begin tags. Ampersands don’t
start entity references. Everything is simply character data, not
markup.
For example, in a Scalable Vector Graphics (SVG) tutorial written in XHTML, you might see something like this:
<p>You can use a default <code>xmlns</code> attribute to avoid having to add the svg prefix to all your elements:</p> <pre><![CDATA[ <svg xmlns="http://www.w3.org/2000/svg" width="12cm" height="10cm"> <ellipse rx="110" ry="130" /> <rect x="4cm" y="1cm" width="3cm" height="6cm" /> </svg> ]]></pre>
The SVG source code has been included directly in the XHTML file
without carefully replacing each <
with <
. The result will be a sample SVG
document, not an embedded SVG picture, as might happen if this example
were not placed inside a CDATA
section.
The only thing that cannot appear in a CDATA
section is the CDATA
section end delimiter, ]]>
.
CDATA
sections exist for the convenience of human authors, not for programs. Parsers are not required to tell you whether a particular block of text ...
Get XML in a Nutshell, 3rd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.