Ich versuche, die folgenden "AttrName" und "AttrType" XML-Elemente in einer einzigen Klasse zu marshalieren und zu entpacken. (Im Moment lese ich die Werte individuell und baue meine Objekte nach dem unmarshalling in Java.)JAXB Marshaling und Unmarshalling mehrerer XML-Elemente in eine einzige Klasse und umgekehrte
<wrapper>
<someOtherElement>xxx</someOtherElement>
<attrName ref="a">xxx</attrName>
<attrName ref="b">xxx</attrName>
<attrName ref="c">xxx</attrName>
<attrType attrRef="a">xxx</attrType>
<attrType attrRef="b">xxx</attrType>
<someOtherElement>xxx</someOtherElement>
</wrapper>
Das „ref“ XML-Attribut verwendet wird, ein Attribut zu identifizieren und als Referenz für die „attrType“ XML -Element. Aber das XML-Element "attrType" ist optional und muss nicht vorhanden sein. Es darf kein "attrType" XML-Element ohne ein "attrName" XML-Element geben.
Ich brauche eine Liste der „attribute“ Objekte der Klasse zu generieren:
package example;
public class Attribute {
private String name;
private String ref;
private String type;
public String getName() {
return name;
}
public void setName(String name) {
this.name= name;
}
public String getRef() {
return ref;
}
public void setRef(String ref) {
this.ref= ref;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type= type;
}
}
ich bereits folgenden Zusammenhang question gefunden. Aber es hat mir nicht geholfen, eine Lösung für mein Problem zu finden. Das Problem besteht darin, alle zugehörigen Attributnamen und -typen zu finden, um ein Java-Objekt zu erstellen.
Ich wäre dankbar für alle Tipps oder Ratschläge in die richtige Richtung. Wenn ich nichts zufriedenstellendes erklärt habe, zögere bitte nicht zu fragen, da Englisch nicht meine Muttersprache ist.
PS: Ich weiß, ich könnte eine andere XML-Struktur verwenden und das Problem einfach lösen. Aber das ist nicht möglich für mich.
Um zu klären. Was ich gerne wissen würde ist, wie man die "Attribut" -Klasse (und/oder Hilfsklassen) annotiert, um das XML-Schema für den beschriebenen Fall zu beschreiben. – Jonas