JaxB / cxf-common-xsd Plugin für Maven -> Codegenerierung

Sadik

Mitglied
Guten Morgen!

Ich bin derzeit dabei, ein Anwendungsprogramm in Java zu programmieren. Die per Schemadatei vorgegebene XML-Datenstruktur wollte ich dabei per JaxB direkt generieren und nutzen, aber nun habe ich folgendes Problem:

Alle Schema-Dateien (9 an der Zahl) nutzen denselben Header (und andere allgemeine Elemente) die aus den jeweiligen Unterschemen importiert werden, dieses würde dafür sprechen, dass alle generierten Klassen in dasselbe Package generieren lasse, um so auf die "simple" Art sicherzustellen, dass alle Klassen die entsprechenden allgemeinen Klassen nutzen, und nicht jedes Schema seinen eigenen Headertyp definiert.
Leider sind innerhalb der Schemadateien nun einzelne Elemente gleich benannt, allerdings ist der "Fahrzeug"-Typ eines Schemas völlig anders aufgebaut als der "Fahrzeug"-Typ eines nächsten. Und da alles nacheinander weg generiert wird überschreiben sie sich einfach so lange bis der letzte siegt.

Nun ist meine Frage, kennt sich jemand gut genug damit aus um mir einen Tipp zu geben, wie ich die allgemeinen Elemente in ein eigenes Package generieren lasse und trotzdem allen anderen Klassen automatisch den Verweis auf dieses Package gebe?

Ergo, statt alles in de.generated.foo zu generieren, eine Struktur ähnlich so zu bekommen:

de.generated.foo.allgemein
de.generated.foo.schema1
de.generated.foo.schema2

Und das ganze sinnvollerweise ohne, oder zumindest ohne zu große, Änderungen an den Schemata? Ich kann es machen indem ich im Nachhinein manuell an den generierten Sourcen Ändeurngen vornehme..aber das ist ja nun wirklich nicht der Sinn von Codegenerierung..

mfg
Sadik
 
Erstmal vielen Dank für die fixe Antwort :) Wenn man erstmal weiß wie das heißt was man sucht geht das doch einfacher von der Hand..

Hab meine Probleme nu soweit erstmal gelöst, die Welt ist wieder sicher vor mir.
 
Zuletzt bearbeitet:
ich habe sowas noch nicht probiert, aber es gibt definitiv einen unterschied zwischen einem include und einem import. Der include landet im gleichen namespace wie die inkludierende datei, der import kann in einen anderen namespace landen.

Vielleicht geht also etwas über unterschiedliche namespaces?

REINHAUN!
 

Neue Beiträge

Zurück