Espace de noms

De Guide utilisateur des messages comptables UN/XML

Comme XML est extensible, tout le monde définit ses balises. Mais il y a un risque que deux organisations utilisent la même balise avec des significations différentes.

Principes généraux

Le mécanisme des espaces de nom (namespaces) est une petite extension à XML qui permet d’indiquer clairement le propriétaire de chaque balise. Le principe est simple, il est d’ailleurs directement inspiré des codes Gencod ou des adresses IPs, et parfaitement adaptés à l’environnement du W3C.

Avec les espaces de noms, chaque balise est composé de deux parties :

  • une partie locale, lisible et dont l’unicité ne peut pas être garantie
  • une partie globale, représentés par une URI (URL ou URN) qui identifie l’organisation utilisatrice et est unique dans le monde.

On retrouve bien le principe des codes Gencod où le préfixe du code identifie l’organisation émettrice (garantie unique par son affiliation à Gencod) alors que le suffixe représente un code produit interne (sans garantie d’unicité puisqu’il est propre à l’entreprise). La combinaison des deux est garantie unique. Seule différence pour les espaces de noms, c’est une URI qui garanti l’unicité (en pratique les URIs sont souvent des URLs). La mise en œuvre des espaces de nom s’appuie sur un attribut réservé qui déclare l’espace de nom et lui associe un préfixe pour le document.

Par exemple, on ré-écrira notre exemple dans un espace de nom comme suit :

<m:message xmlns:m="http://psol.com/2011/message">

  Contactez <m:nom><m:prénom>Jean</m:prénom>
 <m:famille>Dupont</m:famille></nom>,
  <m:profession>expert-comptable</m:profession> à <m:lieu>Paris</m:lieu>,
  au <m:téléphone>01 50 50 50 50</m:téléphone>.
</m:message>

Le concept d'espace de nom est simple mais source de beaucoup de confusion. Examinons rapidement les deux erreurs les plus fréquentes :

  • l'URI n’est qu’un identifiant ; il n’a pas besoin de pointer vers une description de l’élément ;
  • le préfixe n’est utilisé que comme raccourci pour l’URI. En effet, les URI sont généralement assez longues et incluent des caractères non valides pour les noms de balise XML.

URI comme identifiant

Les URIs (Uniform Resource Identifier) sont une extension des URLs (Uniform Resource Locator). Les URLs sont

C'est sans doute la principale source de confusion. Puisqu'il s'agit d'un

Normalement l'URI des espaces de nom doit utiliser le nom de domaine de l'auteur du vocabulaire pour en garantir l’unicité.

Retour au sommaire