2009-05-05 17 views
2

En XSD, SOAP et d'autres conventions XML, vous verrez souvent des choses comme:XML: attributs ou enfants?

<book> 
<title>Harry Potter</title> 
<author>J.K. Rowling</author> 
</book> 

Maintenant, je me demande, ce qui est arrivé aux attributs? Pour moi, il est plus logique d'écrire ce que:

<book title="Harry Potter" author="J.K. Rowling" /> 

Mais apparemment, pour une raison quelconque, les gens plus intelligents que moi ont choisi autrement. Quelqu'un pourrait-il expliquer pourquoi et pour quels attributs?

+0

Voir: http://stackoverflow.com/questions/241819/xml-meilleures-pratiques-attributs-vs-noeuds-additionnels – Cuga

Répondre

2

Il n'y a pas de règle stricte. J'ai tendance à utiliser des attributs pour métadonnées sur les données contenues dans les éléments. par exemple

<book author="JK Rowling" published="September 2001">Harry Potter</book> 

bien que l'utilisation/exigences particulières déterminera cela plus que n'importe quelle autre chose.

Un autre problème est le traitement ultérieur. Si vous utilisez un processeur SAX, ce format entraînera un callback de méthode avec la structure d'atteribute remplie. Mettre les données dans plusieurs éléments se traduira par le nombre correspondant d'appels de méthode (cela peut être une optimisation trop loin, mais il peut être utile de considérer selon la quantité de données)

+0

+1 pour les réflexions sur les parseurs SAX. –