JAXB List marshell

Ich habe eine xml, die so aussieht:
[XML]

<filters>
    <filter id="ending">
        <parameter id="ending" value="mp3"/>
    </filter>
</filters>

<actions>
    <action id="move">
        <parameter id="folder" value="" resolver-id="folder-resolver"/>
    </action>
</actions>
[/XML]

Ich würde gerne mit JAXB den Kram mit Hilfe eines Models darstellen. Mein Problem nun: Ich hab mir eine Klasse “Ruleset” gemacht, die als Attribut zwei Listen hat, einmal “actions” und einmal “filters”. Der Datentyp ist jeweils List.
Wenn ich mit JAXB eine Liste “marshelle”, dann bekomme ich ja immer die Struktur
[XML]




[/XML]
So sieht der Code dann ungefähr aus:

@XmlRootElement
public class XmlFilter {

    @XmlAttribute(required = true)
    private String id;

    @XmlElementWrapper
    @XmlElement(name = "parameter")
    private List<XmlParameter> paremeters;

    public String getId() {
        return id;
    }
}

@XmlRootElement
public class XmlParameter {
    
    @XmlAttribute(required = true)
    private String id;
    
    @XmlAttribute
    private String value;
    
    @XmlAttribute(name = "resolver-id")
    private String resolverId;

    public String getResolverId() {
        return resolverId;
    }

    public String getId() {
        return id;
    }

    public String getValue() {
        return value;
    }
}

@XmlRootElement
public class XmlRuleSet {
    
    @XmlAttribute(required = true)
    private String id;
    
    @XmlElementWrapper(name = "filters")
    private List<XmlFilter> filters;
    
    @XmlElementWrapper(name = "actions")
    private List<XmlAction> actions;

    public String getId() {
        return id;
    }

    public List<XmlFilter> getFilters() {
        return filters;
    }
}

@XmlRootElement
public class XmlAction {
    
    @XmlAttribute(required = true)
    private String id;
    
    @XmlElementWrapper
    @XmlElement(name = "parameter")
    private List<XmlParameter> parameters;
}

Das Problem nun: Wenn ich versuche, meine xml zu “unmarshellen” geht das nicht ganz. Ich denke das liegt daran, dass JAXB die Elemente der Liste immer zwischen einen “Root-Tag” schreibt, im Normalfall den Namen der Liste. In meinem Beispiel würde ich gerne diesen Tag entfernen oder erst gar nicht generieren lassen. Gibt es da irgendeinen Weg?

JA,
Du mussst den Names des Tags verdenden, das wiederholt wird.

So sollte es gehen:``` @XmlElementWrapper(name = “filter”)
private List filters;

@XmlElementWrapper(name = "action") 
private List<XmlAction> actions;```

Ich mache es ja grundsätzlich umgekehrt, d.h.: ich erstelle eine XSD und lasse dann jaxb die notwendigen Klassen generieren.

bye
TT