XML - Attributs

Ce chapitre décrit les XML attributes. Les attributs font partie des éléments XML. Un élément peut avoir plusieurs attributs uniques. L'attribut donne plus d'informations sur les éléments XML. Pour être plus précis, ils définissent les propriétés des éléments. Un attribut XML est toujours une paire nom-valeur.

Syntaxe

Un attribut XML a la syntaxe suivante -

<element-name attribute1 attribute2 >
....content..
< /element-name>

où l' attribut1 et l' attribut2 ont la forme suivante -

name = "value"

la valeur doit être entre guillemets doubles ("") ou simples (''). Ici, attribut1 et attribut2 sont des étiquettes d'attribut uniques.

Les attributs sont utilisés pour ajouter une étiquette unique à un élément, placer l'étiquette dans une catégorie, ajouter un indicateur booléen ou l'associer d'une autre manière à une chaîne de données. L'exemple suivant montre l'utilisation des attributs -

<?xml version = "1.0" encoding = "UTF-8"?>
<!DOCTYPE garden [
   <!ELEMENT garden (plants)*>
   <!ELEMENT plants (#PCDATA)>
   <!ATTLIST plants category CDATA #REQUIRED>
]>

<garden>
   <plants category = "flowers" />
   <plants category = "shrubs">
   </plants>
</garden>

Les attributs sont utilisés pour distinguer les éléments du même nom, lorsque vous ne souhaitez pas créer un nouvel élément pour chaque situation. Par conséquent, l'utilisation d'un attribut peut ajouter un peu plus de détails en différenciant deux ou plusieurs éléments similaires.

Dans l'exemple ci-dessus, nous avons catégorisé les plantes en incluant la catégorie d'attribut et en attribuant des valeurs différentes à chacun des éléments. Par conséquent, nous avons deux catégories de plantes , l'une des fleurs et d'autres arbustes . Ainsi, nous avons deux éléments végétaux avec des attributs différents.

Vous pouvez également observer que nous avons déclaré cet attribut au début de XML.

Types d'attributs

Le tableau suivant répertorie le type d'attributs -

Type d'attribut La description
StringType Il prend n'importe quelle chaîne littérale comme valeur. CDATA est un StringType. CDATA est une donnée de caractère. Cela signifie que toute chaîne de caractères sans balisage est une partie légale de l'attribut.
TokenizedType

C'est un type plus contraint. Les contraintes de validité notées dans la grammaire sont appliquées après la normalisation de la valeur d'attribut. Les attributs TokenizedType sont donnés comme -

  • ID - Il est utilisé pour spécifier l'élément comme unique.

  • IDREF - Il est utilisé pour référencer un identifiant qui a été nommé pour un autre élément.

  • IDREFS - Il est utilisé pour référencer tous les ID d'un élément.

  • ENTITY - Il indique que l'attribut représentera une entité externe dans le document.

  • ENTITIES - Il indique que l'attribut représentera des entités externes dans le document.

  • NMTOKEN - Il est similaire à CDATA avec des restrictions sur les données pouvant faire partie de l'attribut.

  • NMTOKENS - Il est similaire à CDATA avec des restrictions sur les données pouvant faire partie de l'attribut.

EnumeratedType

Cela a une liste de valeurs prédéfinies dans sa déclaration. à partir de laquelle, il doit attribuer une valeur. Il existe deux types d'attributs énumérés -

  • NotationType - Il déclare qu'un élément sera référencé à une NOTATION déclarée ailleurs dans le document XML.

  • Enumeration - L'énumération vous permet de définir une liste spécifique de valeurs auxquelles la valeur d'attribut doit correspondre.

Règles d'attribut d'élément

Voici les règles à suivre pour les attributs -

  • Un nom d'attribut ne doit pas apparaître plus d'une fois dans la même balise de début ou d'élément vide.

  • Un attribut doit être déclaré dans la définition de type de document (DTD) à l'aide d'une déclaration de liste d'attributs.

  • Les valeurs d'attribut ne doivent pas contenir de références d'entité directes ou indirectes à des entités externes.

  • Le texte de remplacement de toute entité mentionnée directement ou indirectement dans une valeur d'attribut ne doit pas contenir de signe inférieur à (<)