PRATIQUE XML 
XML : la section CDATA
 
"Je tombe souvent sur des fichiers XML qui contiennent un élément CDATA. A quoi correspond-il et quel est son usage ?" (07/06/2004)

Un problème, une interrogation ? Adressez-vous à la rédaction de JDNet Développeurs

  Forum

Réagissez dans les forums de JDN Développeurs

CDATA (pour "Character Data", données de caractère) figure dans les fichiers XML sous la forme ![CDATA[.
Pour résumer, le contenu de cette section ne sera pas analysé par le navigateur lors de la lecture du fichier. Le texte sera donc affiché tel qu'il est écrit dans cette section (un peu comme les balises <pre></pre> qui affichent le texte en respectant les espaces).

Nombre de fichiers XML dynamiques mettent leur contenu textuel dans une section CDATA, afin d'éviter qu'un caractère inattendu ne casse la validité du XML, et donc ne le rende illisible.

Par exemple, un fichier XML pourrait contenir la balise suivante :

<article>Transformation de notre simple lecteur MP3 en un petit juke-box.</article>

Aucun caractère spécial, rien ne peut venir troubler l'analyse de notre fichier XML. En revanche, il se peut qu'on tiers introduise sans le vouloir un caractère spécial non échappé, voire plusieurs caractères spéciaux :

<article>Le 27 avril dernier, l'US Patent & Trademark Office accordait à l'éditeur ce brevet pour le moins surprenant. Une information passée inaperçue alors mais qui fait surface aujourd'hui.</article>

Pour que l'analyse puisse être faite, il faudrait que le & soit "échappé", c'est-à-dire qu'il soit écrit &amp; dans la balise.
La section CDATA n'est pas analysée : elle sert donc de plus ou plus en plus souvent de fourre-tout pour certains développeurs qui ne prennent pas soin de valider leur XML et préfère simplement cette section si pratique. Elle est donc utilisée parfois à tort ou à travers.

<article><![CDATA[Le 27 avril dernier, l'US Patent & Trademark Office accordait à l'éditeur ce brevet pour le moins surprenant. Une information passée inaperçue alors mais qui fait surface aujourd'hui.
]]></article>

 
Xavier Borderie, JDN Développeurs
 
 
Accueil | Haut de page