Latest web development tutorials

éléments et attributs XML comparaison

En XML, et il n'y a pas de dispositions quand utiliser les attributs, et quand utiliser des éléments enfants.


Utilisez des éléments par rapport aux attributs

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

Regardons ces exemples:

<person sex="female">
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>

<person>
<sex>female</sex>
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>

Dans le premier exemple, le «sexe» est un attribut. Dans un exemple, de retour dans, «sexe» est un sous-élément. Mais les deux fournissent la même information.

Pas de dispositions particulières pour le moment d'utiliser les attributs, et quand utiliser des éléments enfants. Mon expérience est que l'utilisation de multi-attribut HTML lourd, mais en XML, l'utilisation de sous-éléments, il se sentira plus comme données.


J'aime la façon

Je tiens à stocker des données dansdeséléments enfants

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

Cet exemple utilise un attribut "date":

<note date="12/11/2002">
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

Cet exemple utilise un élément "date":

<note>
<date>12/11/2002</date>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

Cet exemple utilise l'extension élément "date": (Ceci est ma façon préférée):

<note>
<date>
<day>12</day>
<month>11</month>
<year>2002</year>
</date>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>


Évitez d'utiliser des attributs?

Vous devriez éviter d'utiliser des attributs?

Certains attribut a les problèmes suivants:

  • Les attributs ne peuvent pas contenir des valeurs multiples (éléments enfant peut)
  • Les attributs ne sont pas facilement extensible (pour les besoins futurs changent)
  • Les attributs ne peuvent pas décrire les structures (éléments de l'enfant peut)
  • Les attributs sont plus difficiles à manipuler le code de programme
  • Les valeurs d'attribut sont pas faciles à tester DTD

Si vous utilisez la propriété comme un conteneur de données, le document XML résultant sera difficile à lire et à maintenir. Essayez d'utiliser deséléments pour décrire les données.pour décrire les données. Les données sont seulement de fournir des informations non pertinentes lorsque nous recommandons l'utilisation de la propriété.

Ne pas finir comme ça (qui ne sont pas XML doit être utilisé):

<note day="12" month="11" year="2002"
to="Tove" from="Jani" heading="Reminder"
body="Don't forget me this weekend!">
</note>


Exception à la règle de la propriété

Il y a toujours une autre règle

Règles sur la propriété I ont une exception.

Parfois, j'utilise des éléments ID spécifiés. Ces applications peuvent être utilisées comme ID attribut NAME ou ID pour accéder à des éléments XML en HTML dans la même situation beaucoup. L'exemple suivant illustre cette approche:

<messages>
<note id="p501">
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

<note id="p502">
<to>Jani</to>
<from>Tove</from>
<heading>Re: Reminder</heading>
<body>I will not!</body>
</note>
</messages>

documents XML dans les exemples ci-dessus, l'ID d'un seul compteur, ou un identifiant unique pour identifier les différentes notes, plutôt que comme une partie des données.

Je veux dire ici est que les métadonnées (données sur les données) doivent être stockés sous forme d'attributs, et que les données lui-même doit être stocké en tant qu'éléments.