2013-02-26 4 views
1

Avoir une classe halo avec des champs comme ça:services Web Java - quand utiliser XmlAttribute?

private String description; // a lot of text 
private long price; 
private int count; 

.. Je trouve que pour price et count@XmlAttribute a été utilisé, mais pas pour le description. Pourquoi?

Quelle est la différence et comment/où sont-ils stockés?

Répondre

1

très bon article sur IBM's website

Si les informations en question pourrait lui-même être marqué avec éléments, il a mis dans un élément.

Si l'information est appropriée pour la forme d'attribut, mais pourrait se terminer par plusieurs attributs du même nom sur le même élément, utilisez plutôt les éléments enfant .

Si l'information doit être dans un attribut type DTD standard , par exemple ID, IDREF ou ENTITY, utilisez un attribut.

Si l'information ne doit pas être normalisé pour l'espace blanc, utilisez éléments. (Processeurs XML normalisent attributs qui peut modifier le texte brut de la valeur d'attribut.)

+1

Je suggère, donner à-moins nécessaire informations de ce site Web comme une réponse et donner lien vers le site. En cas si le lien se réponse toute dépassée deviendra invalide –

+0

thank u pour un conseil @PradeepSimha – knowbody

0

Les deux XmlElement et @XmlAttribute sont tout à fait autodocumenté.

@XmlElement sera sérialisé comme un élément XML (noeud enfant du noeud courant)

@XmlAttribute sera sérialisé comme un attribut XML. La réponse de

knowbody est tout à fait clair quand choisir l'un ou l'autre.

Donc, dans votre exemple, vous devriez obtenir quelque chose comme

<halo price="..." count="..." > 
    <description>...</description> 
</halo>