XML CDATA


Tout le texte dans un document XML sera analysé par l'analyseur.

Seul le texte à l'intérieur d'une section CDATA sera ignoré par l'analyseur.


PCDATA - Données de caractères analysées

Les analyseurs XML analysent généralement tout le texte d'un document XML.

Lorsqu'un élément XML est analysé, le texte entre ses balises est également analysé :

<message>Ce texte est aussi analysé</message>

L'analyseur fait cela parce que les éléments XML peuvent contenir d'autres éléments, comme dans cet exemple, où l'élément <name> contient deux autres éléments (first et last) :

<name><first>Bill</first><last>Gates</last></name>

L'analyseur le décompose en sous-éléments comme ceci :

<name>
<first>Bill</first>
<last>Gates</last>
</name>

Le terme « Parsed Character Data » (PCDATA) désigne les données textuelles analysées par l'analyseur XML.


CDATA - Données de caractères (non analysées)

Le terme CDATA désigne les données textuelles qui ne doivent pas être analysées par l'analyseur XML.

Les caractères tels que "<" et "&" sont illégaux dans les éléments XML.

"<" provoquera une erreur car l'analyseur interprète ce caractère comme le début d'un nouvel élément.

"&" provoquera une erreur car l'analyseur interprète ce caractère comme le début d'une entité de caractère.

Certains textes, comme le code JavaScript, contiennent beaucoup de caractères "<" ou "&". Pour éviter les erreurs, le code du script peut être défini comme CDATA.

Tout ce qui se trouve à l'intérieur d'une section CDATA est ignoré par l'analyseur.

La section CDATA commence par "<![CDATA[et se termine par "]]>:

<script>
<![CDATA[
function matchwo(a,b)
{
if (a < b && a < 0) then
{
return 1;
}
else
{
return 0;
}
}
]]>
</script>

Dans l'exemple ci-dessus, le parseur ignore tout ce qui se trouve dans la section CDATA.

Remarques sur les sections CDATA :

Une section CDATA ne peut pas contenir la chaîne "]]>". Les sections CDATA imbriquées ne sont pas non plus autorisées.

Le "]]>" qui marque la fin d'une section CDATA ne peut pas contenir d'espaces ni de sauts de ligne.


Autres extensions