saftmeister
Nutze den Saft!
Hallo,
da ich nach Google- und Forensuche noch nicht weiß, wie ich das machen kann, stelle ich hier meine Frage:
Ich habe verschiedene XSD-Files, die mit jeweils unterschiedlichen Binding-XML-Files Klassen generieren. Die Packages sind teilweise sehr unterschiedlich. Daran kann auch nichts geändert werden. In ein oder zwei von diesen Binding-Files werden javatype-Mappings von bspw. xmlType="dateTime" auf name="java.util.Calendar" (und andere) gemappt. Dies natürlich in Kombination mit der entsprechenden parseMethod="javax.xml.bind.DatatypeConverter.parseDateTime" sowie das printMethod-Äquivalent.
Also quasi wie hier beschrieben: https://jaxb.dev.java.net/guide/Using_different_datatypes.html
Dabei wird jeweils eine Adapter-Klasse erstellt. Leider nicht wie auf obiger Seite beschrieben sondern mit dem Namen
org.w3._2001.xmlschema.Adapter[n].class
Wobei [n] bei drei Java-Type-Mappings natürlich 1 bis 3 lautet. Ich hätte es gern so, das der Package-Pfad dieser Adapter-Klasse definierbar ist oder das der Name der Klasse frei wählbar ist. Durch das Generieren aller XSDs erhalte ich nämlich zwei Klassen mit dem gleichen Namen und gleichem Pfad aber in unterschiedlichen Pfaden innerhalb meiner Build-Umgebung. Das Resultat ist jedenfalls, das der Compile mittels ant abbricht, weil diese zwei Klassen gefunden und deshalb einer von beiden als Duplikat gekennzeichnet wird.
Leider kann ich an der Strukur überhaupt nichts ändern. Lediglich das Binding kann ich anpassen.
Verwendet wird JAXB 2.0.
Außerdem möchte ich noch anmerken, das die Target-Namespaces zwischen den XSDs durchaus auch komplett unterschiedlich sind. Die generierten Adapter-Klassen lauten allerdings immer gleich und verwenden das gleiche Package "org.w3._2001.xmlschema". Ich wäre schon sehr froh, wenn ich diesen ändern könnte.
Kann mir jemand einen Tipp geben, wie das Binding dazu aussehen muss?
da ich nach Google- und Forensuche noch nicht weiß, wie ich das machen kann, stelle ich hier meine Frage:
Ich habe verschiedene XSD-Files, die mit jeweils unterschiedlichen Binding-XML-Files Klassen generieren. Die Packages sind teilweise sehr unterschiedlich. Daran kann auch nichts geändert werden. In ein oder zwei von diesen Binding-Files werden javatype-Mappings von bspw. xmlType="dateTime" auf name="java.util.Calendar" (und andere) gemappt. Dies natürlich in Kombination mit der entsprechenden parseMethod="javax.xml.bind.DatatypeConverter.parseDateTime" sowie das printMethod-Äquivalent.
Also quasi wie hier beschrieben: https://jaxb.dev.java.net/guide/Using_different_datatypes.html
Dabei wird jeweils eine Adapter-Klasse erstellt. Leider nicht wie auf obiger Seite beschrieben sondern mit dem Namen
org.w3._2001.xmlschema.Adapter[n].class
Wobei [n] bei drei Java-Type-Mappings natürlich 1 bis 3 lautet. Ich hätte es gern so, das der Package-Pfad dieser Adapter-Klasse definierbar ist oder das der Name der Klasse frei wählbar ist. Durch das Generieren aller XSDs erhalte ich nämlich zwei Klassen mit dem gleichen Namen und gleichem Pfad aber in unterschiedlichen Pfaden innerhalb meiner Build-Umgebung. Das Resultat ist jedenfalls, das der Compile mittels ant abbricht, weil diese zwei Klassen gefunden und deshalb einer von beiden als Duplikat gekennzeichnet wird.
Leider kann ich an der Strukur überhaupt nichts ändern. Lediglich das Binding kann ich anpassen.
Verwendet wird JAXB 2.0.
Außerdem möchte ich noch anmerken, das die Target-Namespaces zwischen den XSDs durchaus auch komplett unterschiedlich sind. Die generierten Adapter-Klassen lauten allerdings immer gleich und verwenden das gleiche Package "org.w3._2001.xmlschema". Ich wäre schon sehr froh, wenn ich diesen ändern könnte.
Kann mir jemand einen Tipp geben, wie das Binding dazu aussehen muss?