1.XML

1.10.Les attributs

Les valeurs des attributs doivent être précisés, au choix, entre guillemets " ou entre apostrophes '.
<?xml version="1.0"?>
<racine>
    <mabalise monattribut="valeur1" />
    <mabalise monattribut='valeur2' />
</racine>
Une valeur précisée entre apostrophes peut contenir des guillemets, une valeur précisée entre guillemets peut contenir des apostrophes.
<?xml version="1.0"?>
<racine>
    <mabalise monattribut='il a dit "Bonjour!"' />
    <mabalise monattribut="c'était aujourd'hui" />
</racine>
Dans les documents XML les attributs sont généralement mis entre guillemets (et non entre apostrophes).

1.11.Les attributs et les (autres) caractères qui posent problème

Nous avons vu dans le chapitre précédent comment intégrer des caractères < et & dans les valeurs des attributs. Mais pour les valeurs d'attribut d'autres caractères peuvent poser problème.
  • Si vous souhaitez indiquer une valeur d'attribut contenant des guillemets (alors que celle-ci est délimitée par des guillemets) vous devrez utiliser la notation &quot; ou le code UNICODE &#x22;
  • Si vous souhaitez indiquer une valeur d'attribut contenant des apostrophes (alors que celle-ci est délimitée par des apostrophes) vous devrez utiliser la notation &apos; ou le code UNICODE &#x27;
<?xml version="1.0"?>
<racine>
    <mabalise monattribut="il a dit &quot;Bonjour!&quot;" />
    <mabalise monattribut='c&apos;était aujourd&apos;hui' />
</racine>

1.12.Texte ou attribut ?

La norme XML est très souple. Ainsi pour stocker une information vous avez toute liberté pour choisir comment elle sera intégrée au document. Et en particulier la question se posera de savoir si l'information doit être stockée en tant qu'attribut ou comme texte d'une balise.
Nous vous conseillons de stocker les informations relativement prédéfinies (format fixe, valeurs possibles limitées) et uniques dans des attributs (ex: identifiant, dates, etc.) et des informations contenant du texte plus libre entre balises (ex: descriptions) (ça vous évitera les problèmes avec les guillemets ou apostrophes). Ceci dit, il n'est pas toujours aisé de trancher.
Ainsi nous pouvons compléter notre exemple précédent comme suit:
<?xml version="1.0"?>
<annuaire>
    <personne datenaissance="1942-01-08">
        <nom>HAWKING</nom>
        <prenom>Stephen</prenom>
    </personne>
    <personne datenaissance="1932-07-13">
        <nom>REEVES</nom>
        <prenom>Hubert</prenom>
    </personne>
    <personne datenaissance="1879-03-14">
        <nom>EINSTEN</nom>
        <prenom>Albert</prenom>
    </personne>
</annuaire>

1.13.Les commentaires

Il est possible d'inclure des commentaires dans un document XML. Le début de la section de commentaire doit est précisée par <!-- et la fin par -->
<?xml version="1.0"?>
<!-- Mon document version 1.0-->
<informatique>
   <!-- Section XML -->
   <cours>...</cours>
   <!-- Section PHP -->
   <cours>...</cours>
</informatique>
Un bloc de commentaire ne peut contenir -- (i.e. 2 tirets consécutifs) en revanche il peut contenir les caractères <, > et &

1.14.Conclusion

Nous savons désormais faire un document XML "bien formé" (well formed). C'est bien mais c'est insuffisant car nous avons passé sous silence certains points.
En effet, vous aurez certainement à créer des documents valides. Autrement dit, des documents qui répondent à des critères plus stricts que la simple norme XML et qui dépendent le plus souvent de la façon dont les documents vont être traités: Quels balises et attributs sont obligatoires? Quelles sont les valeurs autorisées? etc.
Il est donc temps d'apprendre à déclarer et imposer ces contraintes.