Hey Leute,
ich versuche mit JAXB XML-Elemente auf eine Map zu mappen.
Mein Ziel wäre ein XML-Dokument wie:
Dafür habe ich die folgende Element-Klasse:
Die Map habe ich entsprechend http://blog.bdoughan.com/2010/07/xmladapter-jaxbs-secret-weapon.html gemappt. Dafür gab es die Wrapper-Klasse:
Der Vollständigkeit halber noch die Tag-Klasse:
Sowohl die Tag-Klasse als auch die Map-Adapter-Klasse machen ihren Job gut.
Mein Problem ist, dass dieses Design folgendes XML-Dokument erzeugt:
Das zusätzliche "tags"-Tag ist jedoch zuviel für meine Anwendung. Ich habe leider einige Constraints vorgegeben und kann die Struktur der XML-Dokumente nicht verändern.
Gibt es eine Möglichkeit die Erzeugung dieses Tags zu verhindern?
Grüße
ich versuche mit JAXB XML-Elemente auf eine Map zu mappen.
Mein Ziel wäre ein XML-Dokument wie:
HTML:
<root>
<element id="42">
<tag k="foo" v="bar"/>
<tag k="bar" v="foo"/>
</element>
</root>
Dafür habe ich die folgende Element-Klasse:
Java:
class Element {
@XmlAttribute
private int id
@XmlJavaTypeAdapter(MapAdapter.class)
private Map<String, String> tags = new HashMap<>();
//...
}
Die Map habe ich entsprechend http://blog.bdoughan.com/2010/07/xmladapter-jaxbs-secret-weapon.html gemappt. Dafür gab es die Wrapper-Klasse:
Java:
class Tagmap {
@XmlElement(name="tag")
private List<Tag> tags = new ArrayList<>();
//...
}
Der Vollständigkeit halber noch die Tag-Klasse:
Java:
class Tag {
@XmlAttribute(name="k")
private String key;
@XmlAttribute(name="v")
private String value;
//...
}
Sowohl die Tag-Klasse als auch die Map-Adapter-Klasse machen ihren Job gut.
Mein Problem ist, dass dieses Design folgendes XML-Dokument erzeugt:
HTML:
<root>
<element id="42">
<tags>
<tag k="foo" v="bar"/>
<tag k="bar" v="foo"/>
</tags>
</element>
</root>
Das zusätzliche "tags"-Tag ist jedoch zuviel für meine Anwendung. Ich habe leider einige Constraints vorgegeben und kann die Struktur der XML-Dokumente nicht verändern.
Gibt es eine Möglichkeit die Erzeugung dieses Tags zu verhindern?
Grüße