Très bien, je suis nouveau à JAXB et ayant du mal à trouver la bonne documentation pour m'aider à traverser cela, j'ai lu beaucoup de choses et je ne comprends toujours pas ce que fait JaxB.JAXB Unmarshalls XML de manière incorrecte
J'ai une classe, appelez-le conteneur. Il est prolongé par MyContainer. MyContainer a une valeur booléenne supplémentaire en plus de ce qu'il hérite de Container.
Quoi qu'il en soit, voici comment JAXB Marshalls MyContainer
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<MyContainer name="container" id="1">
<boolVal>false</boolVal>
<ListOfResources> //Using @XmlElementWrapper(name=..
<child>
<ID>Test Comp 1</ID>
</child>
<child>
<ID>Test Comp 2</ID>
</child>
</ListOfResources>
</MyContainer>
Ce que je ne comprends pas l'étiquette "enfant". La seule chose nommée enfant est le nom de la liste. La liste contient des objets (qui ont une propriété de chaîne, ID) mais l'objet ne doit pas être "enfant". Le vrai problème est cependant quand je vais à Demarshall la classe. La liste va remplir avec les "enfants" répertoriés. Je ne vois pas ce qui me manque. Je ne suis pas une exception JAXB, vous l'esprit, mais je quand je vérifie l'objet unmarshalled la liste est dépeuplé
EDIT: clarification
Je suis désolé, ce que je dis est la JAXB va marshall les éléments dans la liste, bien que chaque élément de la liste ait le nom de la liste (enfant). Cependant, quand il va à demarshall, il ne remplit pas la liste dans le nouvel objet.
EDIT2: Courant Setter
public void setChildren(List<Resource<IType>> other) {
Iterator iterator = other.iterator();
while(iterator.hasNext()){
Resource<IType> piece =
new Resource<IType>((Resource<IType>) iterator.next());
this.listOfResources.add(piece);
}
}
duplication possible de [JAXB n'est pas Marshall comme prévu] (http://stackoverflow.com/questions/6915201/jaxb-does-not-marshall-as-expected) –