Disons que vous souhaitez autoriser un élément XML particulier à se produire 0+ fois. Par exemple, l'élément
<repository>
<recordSet>
<record>Record 1</record>
<record>Record 2</record>
<record>Record 3</record>
</recordSet>
</repository>
5 Réponses :
Avoir un élément parent rend plus simple d'identifier les sections du XML et facilite la simplification des gestionnaires de cartographier les éléments enfants à une collection. Si vous avez un système qui interdit l'utilisation d'attributs (certains, c'est ennuyeux), vous devez également utiliser des éléments d'emballage pour distinguer les propriétés (telles que les identifiants) qui appartiennent à des enfants particuliers.
Autre que celui-ci est valable omettez l'élément parent et peut rendre le fichier nettement moins verbeux. p>
dans votre premier exemple, un élément utilisateur pourrait être mélangé avec les enregistrements, ceci est valide mais il peut être difficile de repérer: P >
<repositories> <users> <user>Bill</user> </users> <repository> <id>id1</id> <recordSet> <id>recordSet1</id> <record>Record 1</record> <record>Record 2</record> <record>Record 3</record> </recordSet> <recordSet> <id>recordSet2</id> <record>Record 1</record> <record>Record 2</record> <record>Record 3</record> </recordSet> </repository> <repository> <id>id2</id> <recordSet> <record>Record 1</record> <record>Record 2</record> <record>Record 3</record> </recordSet> </repository> </repositories>
qui est utile si dans votre
Vous devez préciser les valeurs d'attribut dans votre exemple.
Vous avez trébuché sur la seconde de mes règles de Guide de conception XML (le premier étant d'utiliser des attributs uniquement pour les identifiants et les réel em> métadonnées, le troisième étant n'utilise pas les espaces de noms à moins que vous sachiez ce que vous savez «Re font) que j'essaie d'utiliser lors de la conception de documents XML. En plus d'être une bonne règle - du pouce, il fait également votre document: Une suggestion, j'essaierais: p> Le suffixe "S" plus simple est plus succinct et plus facile à mémoriser et à appliquer. Si vous utilisez un nom de collection générique, vous ou un collègue oublierez celui-ci éventuellement, vous verrez donc des ensembles mélangés avec des listes mélangées à un conteneur. Mais c'est plus de style que de bonnes pratiques et je ne veux pas commencer une guerre religieuse;) p> (UpperCamel pour les éléments !, MAXCAMEL pour les attributs! - / P> P> P>
Bien que j'ai aussi une préférence instinctive pour des collections enveloppées, il est intéressant de noter que Google a une opinion différente. P>
éléments XML qui ne font que supporter des éléments d'enfants répétés ne doivent pas être utilisés. [Justification: Ils ne sont pas utilisés dans Atom et ne rien ajouter.] P> blockQuote>
Si vous devrez valider votre XML avec un XSD et souhaiter vous en tenir au style code> style de structuration de votre XSD avec tous les types explicites, et si vous souhaitez appliquer un caractère d'attribut local sur Ces éléments enfants répétitifs (par exemple, lors du mappage vers le dictionnaire lors de la désérialisation): vous n'aurez nulle part où mettre votre XS: touche code> Définitions. Celles-ci ne sont pas autorisées sous
XS: ComplexType Code> uniquement sous Éléments. Vous serez donc obligé d'avoir un conteneur supplémentaire comme