Comment exclure certains attributs lors de la génération d'un fichier xml avec XStream

Publié le 13 Février 2012

XStream permet de sérialiser facilement un objet java en un fichier xml en recréant l'arborescence des attributs d'un objet java dans une structure XML.

Mais parfois on ne veut pas sérialiser tous les attributs d'un objet.

Par exemple j'ai un objet Article qui contient la liste des utilisateurs qui ont écrit un article. Les utilisateurs étant stockés ailleurs (et également modifiable par ailleurs) et donc je ne souhaite que stocket leur id dans le fichier XML. (avec l'id je peux toujours retrouver toutes les infos d'un utilisateur).

Pour ce cas XStream fournit l'annotation

@XStreamOmitField

Mais voilà je rajoute les annotations et je lance mon test et aucun effet!

Un petit coup d'oeil dans la doc d'XStream et effectivement il faut aussi appeler la méthode processAnnotation avant de générer le XML:

XStream xstream = new XStream(new DomDriver("UTF-8"));
xstream.processAnnotation(article.class);
xstream.toXML(mesArticles, new FileOutputStream("mes_articles.xml")); 

Rédigé par Bliz

Publié dans #Java

Repost 0
Commenter cet article