JAXB Marshalling une liste variable d'éléments avec le même nom

Comme l'indique le titre, j'ai un fichier XML j'ai besoin de unmarshal:

<?xml version="1.0"?>
<root>
    <wrap>
        <Element>something1</Element>
        <Element>something2</Element>
        <Element>something3</Element>
    </wrap>
</root>

"wrap" est tout simplement un wrapper, mais le nombre de "élément" varie.

J'ai deux classes afin de faciliter les objets pour JAXB:

envelopper classe:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "root")
public class Wrap {
    @XmlElementWrapper(name = "wrap")
    @XmlElement(name = "Element")
    private List<Element> elementList = new ArrayList<>();

    public Wrap() {}

    public Wrap(List<Element> list) {
        this.elementList = list;
    }

    public void addElement(Element element) {
        this.elementList.add(element);
    }

    public List<Element> getWrap() {
        return this.elementList;
    }

    public void setWrap(List<Element> wrap) {
        this.elementList = wrap;
    }
}

élément catégorie:

@XmlRootElement(name = "Element")
public class Element {

    private String Element;

    public Element() {}

    public Element(String element) {
        this.Element = element;
    }

    public String getElement() {
        return Element;
    }

    public void setElement(String element) {
        this.Element = element;
    }
}

Tenter de unmarshal le XML se termine sans erreur, cependant, les valeurs d'élément ne sont pas stockées avec l'élément d'objets. Au lieu de cela toString renvoie la valeur null pour chacun des objets.

Je n'ai remplissez les objets à quelques données et de les classer dans un fichier (voir ci-dessous). Ce format, bien sûr, est incorrecte et doit correspondre à la XML ci-dessus.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<root>
    <wrap>
        <Element>
            <element>entry1</element>
        </Element>
        <Element>
            <element>entry2</element>
        </Element>
        <Element>
            <element>entry3</element>
        </Element>
    </wrap>
</root>

J'ai fait des recherches pendant un certain temps maintenant, avec les hypothèses mes annotations sont incorrects, mais peut-être que c'est autre chose...

source d'informationauteur user1816198