3. Validation d’un document XML avec les DTD ou XMLSchéma

3.2. Déclaration d’attributs avec les DTD

Tout comme en HTML où les balises peuvent avoir des attributs (comme par exemple la balise BODY avec ses attributs bgcolor, background etc.), il est possible avec les DTD de définir des attributs pour les éléments en XML.

La syntaxe pour définir un attribut est la suivante:

<!ATTLIST NOM_ELEMENT NOM_ATTRIBUT type_attribut défaut>

NOM_ELEMENT désigne le nom de l'élément contenant l'attribut.

NOM_ATTRIBUT: désigne le nom de l'attribut à déclarer.

Type d'attributs peut prendre les valeurs suivantes:

  • CDATA : chaîne de caractères prise telle quelle
  • ID : Les valeurs de l'attribut sont uniques
  • IDREF : l'attribut fait référence à un attribut de type ID
  • NMTOKEN : noms symboliques formés de caractères alphanumériques sans espace

Valeur par défaut des attributs:

  • #REQUIRED : l'attribut est obligatoirement présent et la valeur spécifiée par le créateur de l'instance
  • #IMPLIED : la présence de l'attribut est facultative
  • #FIXED "Valeur" : l'attribut prend toujours cette valeur

Exemple:

Pour déclarer un attribut numero pour un élément personne de type ID et obligatoire, on fait:

<!ATTLIST personne numero ID #REQUIRED>

Pour déclarer les attributs nom de type chaîne de caractère et obligatoire et prenom de type chaîne de caractère optionel d'un élément personne, on fait:

<!ATTLIST personne nom CDATA #REQUIRED prenom CDATA #IMPLIED>