JAXB Java to XML: comment ne pas imprimer les membres de type primitif lorsque ceux-ci sont définis par défaut

StackOverflow https://stackoverflow.com/questions/1040146

Question

Première tentative d'utilisation de ce site intéressant - après 2 heures de recherche: J'ai donc un bean Java qui est donné (je ne peux qu'annoter et ne pas changer) et que je dois mapper sur XML à l'aide de JAXB. Je voudrais que les types de primitives ne soient pas imprimés lorsqu'ils contiennent leur langue par défaut ou une valeur par défaut définie par l'utilisateur.

Comme je l’ai dit, je ne peux pas changer le bean java, et donc changer les types primitifs en leurs homologues Object Wrappers.

Comment faites-vous cela au mieux?

Exemple de haricot:

class Foo {  
public String name;  
// -1 is user defined default, to indicate field is not set.  
public long someIdx=-1;  
// ...  
}  

Foo f = new Foo();  
f.name = "Duke";

pour cette instanciation, ce que je voudrais, c'est la sortie suivante:

<foo><name>Duke</name></foo>
Était-ce utile?

La solution

Vous pouvez utiliser les XmlAdapters de JAXB. Disponible depuis JAXB 2.0 (JDK 6.0)

En utilisant l'adaptateur, vous laissez le bean seul et annotez / modifiez une classe complètement différente. Cela ne devrait pas poser de problème dans votre cas.

Voir ma réponse ici

Voir le blog de l'auteur de JAXB

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top