JAXB Marshalling einer variablen Liste von Elementen mit demselben Namen

Gemäß dem Titel habe ich eine XML-Datei, die ich zum Entpacken benötige:

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

"wrap" ist einfach ein Wrapper, aber die Anzahl von "element" variiert.

Ich habe zwei Klassen, um Objekte für JAXB zu erleichtern:

Wickelklasse:

@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;
    }
}

Elementklasse:

@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;
    }
}

Der Versuch, das XML zu dekomprimieren, wird ohne Fehler abgeschlossen. Die Elementwerte werden jedoch nicht mit den Elementobjekten gespeichert. Stattdessen gibt toString für jedes Objekt null zurück.

Ich habe die Objekte mit einigen Daten gefüllt und sie in eine Datei gemarshallt (siehe unten). Dieses Format ist natürlich falsch und sollte mit dem obigen XML übereinstimmen.

<?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>

Ich habe dies für eine Weile mit den Annahmen recherchiert, dass meine Anmerkungen falsch sind, aber vielleicht ist es etwas anderes ...

Antworten auf die Frage(1)

Ihre Antwort auf die Frage