Bonjour tout le monde,

J'ai un petit problème que je ne parviens pas à résoudre avec la sérialisation (Serialize - Xstream).

Après mon avoir sérialisé mon objet, j'obtiens ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
<serialisation>
 <list>
   <int>3</int> 
   <int>44</int> 
 </list>
</serialisation>
Je souhaiterais supprimer la collection list de mon fichier xml et obtenir donc ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
<serialisation>
   <int>3</int> 
   <int>44</int> 
</serialisation>
Ceci est faisable avec l'instruction addImplicitCollection().

Exemple :

(source : http://tom.tharrisx.homedns.org/sm3r...-tutorial.html)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
xstream.addImplicitCollection(MaClasse.class, "list");
Le problème est que ma List n'est pas dans un autre classe et donc que cette instruction ne fonctionne pas. Je m'explique :

Dans ma classe B :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
private List laList = new ArrayList();
 
laList.add(3);
laList.add(44);
 
OutputStreamWriter writer = new OutputStreamWriter(
                    new FileOutputStream("c:\toto.xml"), "UTF-16");
XStream xstream = new XStream();
ObjectOutputStream outStream = xstream.createObjectOutputStream(writer, "serialisation");
outStream.writeObject(laList);
outStream.close();
writer.close();
Le contenu du fichier généré est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
<serialisation>
 <list>
   <int>3</int> 
   <int>44</int> 
 </list>
</serialisation>
Dans ce cas-là, ne serait-ce pas possible à la place de la balise <list> une balise <laList> ou bien de pouvoir la supprimer avec une instruction comme addImplicitCollection() ?

Si je déclare cette liste dans une classe C, que dans la classe B j'instancie un objet C et que je passe cet objet à la méthode writeObject() ça va jouer, mais en direct, comme cela, je ne trouve pas de solution pour supprimer la balise <list>.

Qqn pourrait-il m'aider svp ?