Attributs XML
- Page précédente Éléments XML
- Page suivante Espaces de noms XML
Les éléments XML peuvent inclure des attributs dans leur balise de début, comme dans HTML.
Les attributs (Attribute) fournissent des informations supplémentaires (accessoires) sur les éléments.
Les attributs XML doivent être entourés de guillemets
Les valeurs des attributs doivent être entourées de guillemets, mais vous pouvez utiliser des guillemets simples ou doubles.
Par exemple, pour le sexe d'une personne, l'étiquette <person> peut être écrite ainsi :
<person gender="female">
Ou encore ainsi :
<person gender='female'>
Si la valeur de l'attribut contient déjà des guillemets doubles, vous pouvez utiliser des guillemets simples, comme dans l'exemple suivant :
<gangster name='George "Shotgun" Ziegler'>
Ou vous pouvez utiliser les entités de caractères :
<gangster name="George "Shotgun" Ziegler">
Éléments XML et attributs
Voyons ces deux exemples :
<person gender="female"> <firstname>Anna</firstname> <lastname>Smith</lastname> </person> <person> <gender>female</gender> <firstname>Anna</firstname> <lastname>Smith</lastname> </person>
Dans le premier exemple, sex est un attribut. Dans le deuxième exemple, sex est un élément enfant. Les deux exemples peuvent fournir les mêmes informations.
Il n'existe pas de règles en XML qui nous disent quand utiliser des attributs et quand utiliser des éléments enfants. Mon expérience est que les attributs sont très pratiques en HTML, mais en XML, vous devriez éviter d'utiliser des attributs. Si les informations ressemblent à des données, utilisez des éléments enfants.
C'est ma méthode préférée
Les trois documents XML suivants contiennent des informations complètement identiques :
Dans le premier exemple, l'attribut date est utilisé :
<note date="2008-01-10"> <to>George</to> <from>John</from> </note>
Dans le deuxième exemple, l'élément <date> est utilisé :
<note> <date>2008-01-10</date> <to>George</to> <from>John</from> </note>
Dans le troisième exemple, l'élément date étendu est utilisé (c'est mon préféré) :
<note> <date> <year>2008</year> <month>01</month> <day>10</day> </date> <to>George</to> <from>John</from> </note>
Éviter d'utiliser des attributs XML ?
Voici quelques points à considérer lors de l'utilisation des attributs :
- Les attributs ne peuvent pas contenir plusieurs valeurs (les éléments peuvent)
- Les attributs ne peuvent pas décrire une structure arborescente (les éléments peuvent)
- Les attributs ne sont pas faciles à étendre (pour les changements futurs)
Essayez de décrire les données en utilisant des éléments. Utilisez uniquement des attributs pour fournir des informations non liées aux données.
Ne faites pas cette bêtise (ce n'est pas la manière dont XML devrait être utilisé ):
<note day="10" month="01" year="2008"> to="George" from="John" heading="Rappel" body="N'oubliez pas la réunion !"> </note>
Attributs XML pour les métadonnées
Parfois, on assigne des ID aux éléments pour les référencer. Ces indices ID peuvent être utilisés pour identifier les éléments XML, fonctionnant de la même manière que les attributs ID en HTML. Cet exemple nous montre cela :
<messages> <note id="501"> <to>George</to> <from>John</from> <heading>Rappel</heading> <body>N'oubliez pas la réunion !</body> </note> <note id="502"> <to>John</to> <from>George</from> <heading>Re: Rappel</heading> <body>Je ne le ferai pas</body> </note> </messages>
Les ID ci-dessus ne sont qu'un identificateur, utilisé pour identifier différents post-its. Ils ne font pas partie des données du post-it.
L'idée que nous cherchons à vous faire comprendre ici est que les métadonnées (données sur les données) devraient être stockées en tant que propriétés, tandis que les données elles-mêmes devraient être stockées en tant qu'éléments.
- Page précédente Éléments XML
- Page suivante Espaces de noms XML