Document didact...login
Document didacticiel en ligne DTD
auteur:php.cn  temps de mise à jour:2022-04-20 15:01:34

Comparaison des éléments et attributs XML


XML Élément vs Attribut


En XML, il n'y a pas de règle sur le moment d'utiliser les attributs, et quand utiliser éléments enfants.


Utilisation d'éléments ou d'attributs

Les données peuvent être stockées dans des éléments ou des attributs enfants.

Jetons un coup d'œil à ces exemples :

<person sex="female">
<prénom>Anna</prénom>
<nom>Smith</nom>
</personne>

<personne>
<sexe>femelle</sexe>
<prénom>Anna</prénom>
<lastname>Smith</lastname>
</person>

Dans le premier exemple, « sexe » est un attribut. Dans ce dernier exemple, « sexe » est un élément enfant. Mais les deux fournissent les mêmes informations.

Il n'y a pas de règles spécifiques sur le moment d'utiliser les attributs et le moment d'utiliser les éléments enfants. D'après mon expérience, en HTML, les attributs sont souvent utilisés, mais en XML, l'utilisation d'éléments enfants ressemblera davantage à des informations sur les données.


Comme je l'aime

J'aime stocker des données dans des éléments enfants

Les trois documents XML suivants contiennent exactement les mêmes informations :

Dans cet exemple, l'attribut "date" est utilisé :

<note date="12/11/2002">
<à>Tove</à>
<de>Jani</de>
<heading>Rappel</heading>
<body>Ne m'oubliez pas ce week-end !</body>
</note>

Dans cet exemple, l'élément "date" est utilisé :

<note>
<date>12/11/2002</date>
<à>Tove</à>
<de>Jani</de>
<heading>Rappel</heading>
<body>Ne m'oubliez pas ce week-end !</body>
</note>

Cet exemple utilise l'élément "date" étendu : (c'est ma méthode préférée) :

<note>
<date>
​​ <jour>12</jour>
​​ <mois>11</mois>
​​ <année>2002</année>
</date>
<à>Tove</à>
<de>Jani</de>
<heading>Rappel</heading>
<body>Ne m'oubliez pas ce week-end !</body>
</note>


Éviter d'utiliser des attributs ?

Devriez-vous éviter d'utiliser des attributs ?

Certains attributs présentent les problèmes suivants :

  • Les attributs ne peuvent pas contenir plusieurs valeurs (les éléments enfants le peuvent)

  • Les attributs ne sont pas faciles à étendre (pour les changements futurs des exigences)

  • Les attributs ne peuvent pas décrire la structure (les sous-éléments peuvent)

  • Les attributs sont plus difficiles Manipuler le code du programme

  • les valeurs d'attribut ne sont pas faciles à tester, contre DTD

si vous utilisez des attributs en tant que conteneurs de données, le document XML final sera difficile à lire et à maintenir. Essayez d'utiliser l'élément pour décrire les données. à décrire les données. Nous recommandons d’utiliser des attributs uniquement lorsque les données fournies ne constituent pas des informations pertinentes.

Ne finissez pas comme ça (ce n'est pas pour cela que XML devrait être utilisé) :

<note day="12" Month="11" Year=" 2002"
à="Tove" from="Jani" head="Reminder"
body="Ne m'oublie pas ce week-end !">
</note>


Exception à une règle d'attribut

Il y a toujours une autre règle

J'ai une exception à la règle concernant les attributs.

Parfois, un élément est appliqué à l'ID que je spécifie. Ces applications d'ID peuvent accéder aux éléments XML en tant qu'attributs NAME ou ID dans bon nombre des mêmes situations qu'en HTML. L'exemple suivant illustre cette approche :

<messages>
<note id="p501">
​ <à>Tove</à>
​ <de>Jani</de>
​ <heading>Rappel</heading>
​ <body>Ne m'oubliez pas ce week-end !</body>
</note>

<note id="p502">
​ <à>Jani</à>
​ <de>Tove</de>
​ <heading>Re : Rappel</heading>
​ <body>Je ne le ferai pas !</body>
</note>
</messages>

Dans le fichier XML de l'exemple ci-dessus, l'ID est simplement un compteur, ou un identifiant unique, pour identifier différentes notes, et non comme une partie des données.

Ce que je veux dire ici, c'est que les métadonnées (données sur les données) doivent être stockées en tant qu'attributs et que les données elles-mêmes doivent être stockées en tant qu'éléments.

Site Web PHP chinois