Unmarshalling liste imbriquée des éléments xml à l'aide de JAXB
J'ai obtenu une telle construction xml qui j'ai besoin de convertir en objets java à l'aide de JAXB:
<elements>
<elemet>
<type></type>
<property1></property1>
<property2></property2>
<items>
<item>
<id></id>
<name></name>
</item>
...
<item>
<id></id>
<name></name>
</item>
</items>
</element>
</elements>
Je doit convertir cette construction pas à l'élément avec imbriqué liste des articles, mais en plusieurs éléments pour chaque élément. Voici l'exemple de l'Élément de classe:
class Element {
Integer type;
String property1;
String property2;
Integer itemId;
String itemName;
}
Je veux avoir la liste des après unmarshalling. Type, propriété1 et propriété2 valeurs doivent être les mêmes pour tous les éléments de la liste.
Est-il possible de résoudre ce problème en utilisant JAXB?
OriginalL'auteur Egor Lyashenko | 2014-09-06
Vous devez vous connecter pour publier un commentaire.
Vous aurez besoin de définir une coutume XmlAdapter. La partie compliquée dans votre cas, c'est que vous voulez mapper un XML
element
en plusieurs JavaElement
objets. Cela signifie que, en Java., votreXmlAdapter
doit être configuré pour la collecte deElement
objets. En supposant que votre exemple de fragment XML est une partie d'un document:Alors vous aurez besoin pour configurer le
XmlAdapter
pour laList<Element>
champ dans la JavaDocument
classe:Alors vous votre
CustomAdapter
classe peut recevoir une liste d'Élément objets (correspondant à l'actuelle structure XML avec les éléments imbriqués) et de produire une liste d'Élément avec la structure que vous souhaitez.Pour un exemple, consultez JAXB XmlAdapter – Marshaling Personnalisé et Désordonnancement
OriginalL'auteur Ricardo Veguilla
Main.java
Elements.java
Element.java
Item.java
Parce que le
elements
balise de l'élément racine, vous ne pouvez pas utiliser@XmlElementWrapper
, maisitems
n'est pas la racine, de sorte que vous pouvez l'utiliser, par conséquent, vous n'avez pas à mettre en œuvre lesItems
classe.Ignorer la
toString
mise en œuvre, c'est juste pour imprimer des objets d'une manière significative.Objet XML de Sortie
------- Objet XML -----------
XML de Sortie de l'Objet
Heureux que vous avez trouvé utile. Amusez-vous
Bon exemple..je suis en mesure de résoudre le JAXB exception (Liste de conversion des éléments XML dans la liste des objets java)..+1
OriginalL'auteur alkis