2009-09-21 9 views
1

Doublons possibles:
How to design storing complex object settings in an xml
XML attribute vs XML elementXml attributs vs Xml à l'intérieur des propriétés?

Quels sont les critères à utiliser pour décider si quelque chose doit être fait comme ceci:

<Blur Type="Gaussian", Amount=5></Blur> 

ou

<Blur>Gaussian, 5</Blur> 

Si c'est le numéro 1, que mettriez-vous dans les parenthèses?

Aussi, je ne sais pas quelles sont les valeurs à l'intérieur des parenthèses sont appelés (Gaussian, 5): inside properties?

+1

' Gaussian, 5' serait difficile à réutiliser car vous mélangez deux valeurs (attributs?) Dans un champ. – voyager

+1

Dupe: http://stackoverflow.com/questions/1455872/ – GEOCHET

Répondre

2

utilisé

<Blur Type="Gaussian" Amount="5"/> 

ces attributs sont appelés,

intérieur iscalled la valeur du nœud

2

Cela dépend vraiment de la façon dont le XML va être utilisé. Ma règle générale est la suivante:

  • Pour les types simples (int, double, chaîne, date/heure), utilisez les attributs.
  • Pour les types complexes, utilisez des éléments enfants.
6
  1. Les valeurs à l'intérieur des balises XML sont appelées valeurs de variables. Votre deuxième exemple est un exemple de comment ne pas structurer le XML (en général, pour tout stockage de données, XML inclus, vous ne voulez pas regrouper plus de 1 valeur d'attribut en un blob, sauf si vous êtes garanti pour toujours que les 2 valeurs ne seront jamais utilisées/interrogées séparément et les avantages du groupage en termes de performances sont significatifs).

    Il devrait plutôt être

<Blur> 
<Type>Gaussian</Type> 
<Amount>5</Amount> 
</Blur> 

Le choix entre les deux est parfois floue, mais very good set of guidelines exists from IBM

+0

fwiw, re: point 1, ils sont appelés "attributs" – annakata

4

Ok, tout d'abord la première forme est pas XML avec cette virgule et sans guillemets.

Deuxièmement, vous parlez de attributs vs éléments enfants et cela est déjà couvert here, here, here et plusieurs fois elsewhere.

Enfin, la porte n ° 2 n'est de toute façon pas une structure de données de toute sorte raisonnable. Généralement: utilisez des attributs où la relation est une méta-donnée, utilisez des éléments enfants où la relation est la composition.

+0

-1 * pour quoi? * – annakata

+0

Je ne sais pas pourquoi cela a été rejeté car il semblait un réponse très sensible ... –

+0

Merci anna, j'ai donné +1. –

0

Je pense que cela dépend de la préférence personnelle, si vous préférez:

<blur> 
    <type>Gaussian</type> 
    <amount>5</amount> 
</blur> 

ou

<blur type="Gaussian" amount="5" /> 

Ce qui rend toujours votre plus facile pour l'analyse syntaxique vous. Parfois, il est plus facile de référencer les enfants plutôt que les attributs, cela dépend évidemment de la langue que vous utiliserez pour l'analyse.

Questions connexes