# JAXB: XMLMixed generieren



## akoenig (25. Sep 2014)

Hallo,
ich habe eine DTD vorgegeben (kann auch nicht in xsd umgewandelt werden), die in ihrer Beschreibung "gemischte" Elemente hat in der Form 

```
<!ELEMENT LABEL (#PCDATA | FRAGMENT)*>
```
, also das Element LABEL mit Text und/oder einem Element FRAGMENT bedienen können muss.

Bei meinen Googl-Recherchen bin ich darauf gestoßen, dass dieses Konstrukt mit der Annotation @XMLMixed zu lösen ist. Ich habe die durch das Jaxb2-Maven-Plugin generierten Klassen per Hand editiert und das Tag entsprechend eingefügt, so dass ein unmarshall auch korrekt die Daten aus meiner XML-Datei in die Klassen schreibt. Da sich die DTD aber auch jederzeit ändern kann, möchte ich nicht jedes Mal bei einem neuen Generieren der Klassen die Annotation per Hand nachpflegen, sondern hätte gern die Klassen gleich vollständig durch das Maven Plugin generiert. Dafür habe ich im Netz gefunden, dass mit einer entsprechenden binding-Datei diese Annotation geschrieben werden kann.

```
<?xml version="1.0" encoding="UTF-8"?>
<jxb:bindings version="1.0" 
xmlns:jxb="http://java.sun.com/xml/ns/jaxb" 
xmlns:xs="http://www.w3.org/2001/XMLSchema" 
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" jxb:extensionBindingPrefixes="xjc"
jxb:version="2.1">
    <jxb:globalBindings generateIsSetMethod="true" generateMixedExtensions="true">
        <xjc:serializable uid="1" />
        <xjc:simple />
    </jxb:globalBindings>
</jxb:bindings>
```

Beim Ausführen des Befehls 

```
xjc -dtd -d target/generated-sources/  -b src/main/resources/binding/binding.xjb -p com.example src/main/resources/lib/my.dtd
```

bekomme ich jedoch den Fehler angezeigt:


> Unsupported binding namespace "http://java.sun.com/xml/ns/jaxb". Perhaps you meant "http://java.sun.com/xml/ns/jaxb/xjc"?
> line 5 of file:/home/anko/workspace/Catalogs/src/main/resources/binding/binding.xjb



Kann mir jemand weiterhelfen, worin das Problem besteht?

Danke im Voraus, anko


----------

