Beim Generieren von Java aus einem XSD über den XJC-Compiler erhalte ich immer den Typ java.lang.String für Elemente mit anonymen SimpleTypes wie folgt:
%Vor%Natürlich möchte ich eine Aufzählung dafür. Gibt es eine Möglichkeit, XJC dazu zu bringen, einen zu erzeugen und zu benutzen?
Wir benutzen JAXB 2.1.3. Hinweis: Bevor Sie fragen, nein, kann ich das Schema nicht ändern und es an die Fehler von XJC anpassen.
Hier ist ein Beispiel, wie ich das implementiert habe. Ich werde das ganze xjb der Vollständigkeit halber hinzufügen, da ich zugeben muss, dass existierende Beispiele für mich immer noch etwas verwirrend waren.
Hier ist die .xjb-Datei
%Vor%Hier beziehen sich die Bindungen auf meine einfachen Typen, die auf der Stammebene in meiner search-constraints.xsd deklariert sind. Hier ist ein Auszug dieser Datei:
%Vor%
Ich hatte eine sehr ähnliche Frage, fragte ich auf der JAXB-Mailingliste und bekam diese ziemlich hilfreiche Antwort (hatte noch keine Zeit, es auszuprobieren)
edit: Wenn Sie davon sprechen, dass die Enum-Klasse automatisch generiert, anstatt nur automatisch auf eine enum-Klasse zu verweisen, die Sie selbst schreiben, würde ich denken, dass Sie eine Java-Klasse schreiben könnten, die parsen würde die Schemadatei und generiert automatisch den Java-Code für diese Enumeration. (Führen Sie diese Java-Klasse dann immer dann aus, wenn Sie xjc aufrufen)