[dé]sérialisation et héritage et références
[dé]sérialisation et héritage
Bonjour,
voici ma problématique (simplifiée), je voudrais [dé]sérialiser deux listes d'objets sachant que la 2e liste référence des objets de la 1ere liste, mais avec des objets d'une classe-fille.
Ex: j'ai une liste de Véhicules et une liste de Voitures qui héritent de Véhicules.
La liste de Voitures référencent les données de la liste de Véhicules :
List<Véhicule>
véhicule1.type = "voiture"
véhicule1.nbRoues = 4
véhicule1.couleur = "blanc"
véhicule1.propriétaire = Propriétaire1
véhicule1.probleme = null
List<Voiture>
véhicule1.type = "voiture"
véhicule1.nbRoues = 4
véhicule1.couleur = "blanc"
véhicule1.propriétaire = Propriétaire1
véhicule1.probleme = null
voiture1.chassis = "Coupé"
Le problème est que lors de la sérialisation, on perd la notion d'héritage Véhicule/Voiture, et le fichier xml présentes les objets de la manière suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
<list>
<Véhicule>
<type>voiture</type>
<nbRoues>4</nbRoues>
...
<probleme />
</Véhicule>
</list>
<list>
<Voiture>
<type reference="Véhicule[0].type" />
<nbRoues reference="Véhicule[0].nbRoues" />
...
<chassis>Coupé</chassis>
<Voiture>
</list> |
Ce que je voudrais, c'est quelque chose comme ça, l'objet-fils référençant l'objet-mère et les valeurs de ses attributs propres :
Code:
1 2 3 4 5 6 7
|
...
<list>
<Voiture reference="Véhicule[0]">
<chassis>Coupé</chassis>
</Véhicule>
</list> |
On voit mieux le problème si on valorise voiture1.probleme, c'est-à-dire un attribut-mère via l'objet-fils, le véhicule1.probleme n'est pas valorisé, et on aura :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
<list>
<Véhicule>
<type>voiture</type>
<nbRoues>4</nbRoues>
...
<probleme />
</Véhicule>
</list>
<list>
<Voiture>
<type reference="Véhicule[0].type" />
<nbRoues reference="Véhicule[0].nbRoues" />
...
<chassis>Coupé</chassis>
<probleme>qqch</probleme>
<Voiture>
</list> |
Y-at'il une solution à ce problème, ou alors peut être que j'ai raté un détail qui rend mon problème insolvable. (sauf traitement des données de manière empirique, à chaque désérialisation, je peux retrouver qui référence qui et réinstancier les bons objets)
PS: si je ne suis pas clair, n'hésitez pas à demander des précisions.