Afin de ne pas rompre la validité d'un document XML, vous ne pouvez pas utiliser les caractères
< et
& tels quels au sein de votre texte (contenu de la balise) ni même en tant que valeur d'un attribut. Le document XML suivant n'est donc pas correct.
<?xml version="1.0" encoding="ISO-8859-1"?>
<annuaire>
<societe>
<nom>Garage Dupond & Fils</nom>
<description>Distance du centre ville < 2 km</description>
</societe>
</annuaire>
|
Vous devez donc remplacer ces deux notations par
< et
&.
<?xml version="1.0" encoding="ISO-8859-1"?>
<annuaire>
<societe>
<nom>Garage Dupond & Fils</nom>
<description>Distance du centre ville < 2 km</description>
</societe>
</annuaire>
|
Vous pouvez aussi opter pour une notation s'appuyant sur le code ASCII du caractère, ce qui donne alors
< et
&.
<?xml version="1.0" encoding="ISO-8859-1"?>
<annuaire>
<societe>
<nom>Garage Dupond & Fils</nom>
<description>Distance du centre ville < 2 km</description>
</societe>
</annuaire>
|
Une autre alternative consiste à préciser à l'analyseur XML de ne pas interpréter ces caractères spéciaux pour le texte selectionné. Pour cela, vous devez préciser le texte entre
<![CDATA[ et
]]>.
<?xml version="1.0" encoding="ISO-8859-1"?>
<annuaire>
<societe>
<nom><![CDATA[Garage Dupond & Fils]]></nom>
<description><![CDATA[Distance du centre ville < 2 km]]></description>
</societe>
</annuaire>
|
Comme vous avez pu le constater dans les exemples précédents les documents XML commencent par une ligne &?xml (...)>.
Cette ligne permet de préciser la version d'XML utilisée grâce à l'attribut obligatoire version.
Elle permet également de préciser le type d'encodage utilisé (ex: iso-8859-1 pour les caractères utilisés en Europe occidentale). Par défaut, l'encodage est supposé être de l'unicode UTF-8.
Il est possible d'inclure des commentaires dans un document XML. Il suffit d'utiliser la même notation que celle que vous pouvez connaître pour l'HTML. Le début de la section de commentaire est précisée par <!-- et la fin par -->
Un bloc de commentaire ne peut contenir --
Nous savons désormais faire un document XML "bien formé" (well formed). C'est bien mais cela ne nous suffit pas.
En effet, nous pouvons être amené à associer à ce document XML, une DTD afin de forcer l'écriture de fichiers XML "valide" à savoir:
des fichiers respectant des contraintes supplémentaires du genre une balise "annuaire" peut comporter de 0 à un nombre quelconque de "personne", une balise personne est définie par un seul "nom", un seul prénom mais peut-être défini avec au moins un "email".