Meilleures pratiques XML: atsortingbuts vs éléments supplémentaires

Quelle est la différence entre les deux et quand dois-je utiliser chacun:

 Joe Plumber  

contre

  

Merci

Il existe un XML centré sur les éléments et centré sur les atsortingbuts, dans votre exemple, le premier est centré sur les éléments, le second est centré sur les atsortingbuts.

La plupart du temps, ces deux modèles sont équivalents, à quelques exceptions près.

Centrage d’atsortingbut

  • Plus petite taille que l’élément centré.
  • Pas très interopérable, puisque la plupart des parsingurs XML pensent que les données utilisateur sont présentées par l’élément, les atsortingbuts sont utilisés pour décrire l’élément.
  • Il n’y a aucun moyen de présenter une valeur nullable pour certains types de données. par exemple int nullable
  • Ne peut pas exprimer le type complexe.

Élément centré

  • Le type complexe ne peut être présenté qu’en tant que nœud d’élément.
  • Très interopérable
  • Plus grande taille que l’atsortingbut centré. (la compression peut être utilisée pour éliminer la taille de façon significative)
  • Les données nullables peuvent être exprimées avec l’atsortingbut xsi: nil = “true”
  • Plus rapide à parsingr, car l’parsingur ne recherche que des éléments pour les données utilisateur.

Pratique

Si vous vous souciez vraiment de la taille de XML, utilisez l’atsortingbut à chaque fois que cela est approprié. Laissez le type nullable, le type complexe et le nœud qui contiendra de gros éléments de texte. Si vous ne vous souciez pas de la taille de XML compression active pendant le transport, s’en tenir aux éléments. C’est plus extensible.

Contexte

Dans DOT NET, XmlSerializer peut sérialiser les propriétés des objects en atsortingbuts ou en éléments. Dans la structure WCF récente, le sérialiseur DataContract ne peut que sérialiser les propriétés en éléments et il est plus rapide que XmlSerializer. La raison en est évidente, il suffit de rechercher les données utilisateur des éléments lors de la désérialisation.

Ici, un article explique aussi Element vs atsortingbute

Dans le futur, lorsque vous ajoutez une propriété

, vous ne voudrez pas en faire un atsortingbut XML. En effet, une

peut être un élément plus complexe composé d’une adresse postale, d’une ville, d’un pays, etc.

Pour cette raison, vous pouvez choisir le premier formulaire de sous-élément, sauf si vous êtes vraiment certain que l’atsortingbut n’aura pas besoin d’aller beaucoup plus loin. Le premier formulaire permet une plus grande extensibilité dans le futur.

Si vous êtes préoccupé par l’espace, compressez votre XML.

Dans mon entreprise, nous privilégions la 2ème approche.

La façon dont nous pensons à cela est que “prénom” et “nom” sont des atsortingbuts du noeud “personne”, plutôt que des sous-champs du noeud “personne”. C’est une différence subtile.

À mon avis, la deuxième approche est plus concise et la lisibilité / maintenabilité est considérablement améliorée, ce qui est très important.

Bien sûr, cela dépend de votre application. Je ne pense pas qu’il existe une règle générale couvrant tous les scénarios.

Vous voudrez peut-être aussi voir les réponses à cette question que j’ai posée il y a quelque temps. J’ai trouvé les réponses utiles.

Les atsortingbuts ne sont pas sensibles à l’ordre. Cela peut être un avantage ou un inconvénient selon votre situation.

Les atsortingbuts ne peuvent pas être dupliqués. Si “Joe” a deux prénoms, alors les nœuds sont la seule solution.

J’ai trouvé les informations suivantes très utiles pour expliquer le choix des atsortingbuts par rapport aux éléments de manière brève

Certains des problèmes d’utilisation des atsortingbuts sont les suivants:

les atsortingbuts ne peuvent pas contenir plusieurs valeurs (les éléments peuvent)
les atsortingbuts ne peuvent pas contenir d’arborescence (les éléments peuvent)
les atsortingbuts ne sont pas facilement extensibles (pour les modifications futures)

Les atsortingbuts sont difficiles à lire et à maintenir. Utilisez des éléments pour les données. Utilisez des atsortingbuts pour des informations non pertinentes pour les données.

source: http://www.w3schools.com/xml/xml_atsortingbutes.asp