What is the meaning of CDATA
With <![CDATA[
you can embed JS in XML (and XHTML) documents without the need to replace special XML characters like <
, >
, &
, etc by XML entities <
, >
, &
etc to prevent that the XML syntax get malformed and that you get errors like The entity name must immediately follow the '&' in the entity reference. The general recommendation is however to put JS code in its own .js
file which you then include by a <script src>
.
The <![CDATA[
is not needed in plain HTML documents. Unless you're developing with a XML based view technology like Facelets (for JSF) or ASP.NET MVC, there's absolutely no need to declare your HTML as XHTML. Just a <!DOCTYPE html>
would suffice
Wikipedia sums it up really well:
In an XML document or external parsed entity, a
CDATA
section is a section of element content that is marked for the parser to interpret as only character data, not markup. ACDATA
section is merely an alternative syntax for expressing character data; there is no semantic difference between character data that manifests as a CDATA section and character data that manifests as in the usual syntax in which<
and&
would be represented by<
and&
, respectively.
The way I look at it, CDATA
keeps the XML parser from sterilizing your code (making it display as just text, not code).
I hope that explains some of it...