# JAXB: Überflüssiges Wrapper-Tag für Map-Einträge



## Naryxus (24. Aug 2017)

Hey Leute,

ich versuche mit JAXB XML-Elemente auf eine Map zu mappen.

Mein Ziel wäre ein XML-Dokument wie:

```
<root>
   <element id="42">
      <tag k="foo" v="bar"/>
      <tag k="bar" v="foo"/>
   </element>
</root>
```

Dafür habe ich die folgende Element-Klasse:

```
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:

```
class Tagmap {

   @XmlElement(name="tag")
   private List<Tag> tags = new ArrayList<>();

   //...
}
```

Der Vollständigkeit halber noch die Tag-Klasse:

```
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:

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


----------

