Objekt-Generator aus XML und XSD

Status
Nicht offen für weitere Antworten.

Foermchen82

Top Contributor
Hallo zusammen,

ich versuche grad mich an eine Schnittstelle zu verbinden, die Ihre Daten folgendermaßen Spezifiziert hat:

XSD: Enthält die Definition WIE ein DatenTyp definiert sein muss.
XML: Enthält die Speziellen Datentypen der Schnittstelle.

im XSD steht also, dass ein Datentyp u.a. aus Name, minValue, maxValue usw. bestehen muss,
und im XML steht dann, dass es Typ 1, Typ 2 und Typ3 gibt mit den speziellen Parametern.

Das XML und das XSD enthalten noch eine reihe weiterer Elemente, Das Beispiel DatenTyp ist aber am greifbarsten.

Die eigentlichen Daten kommen dann wieder extra!

Wie schaffe ich es jetzt mir entsprechende Java-Klassen für die Typen zu erzeugen?
Bisher kenne ich nur, dass man sich aus einem XSD Objekte generiert und dann XML Daten einliest. Gibt es da eine Möglichkeit?

Danke im voraus!!
 

Noctarius

Top Contributor
Dann wirst du auf dem Wege vermutlich nichts fertig finden. Ich schätze mal, dass du dir einen eigenen "Filter" für XmlBeans oder JAXB schreiben musst um die Daten aus dem XML entsprechend einzubinden.

Alternativ kannst du auf Basis der, von JAXB erstellten, Dateien auch ein Mini-Framework bauen welches die passenden Transformationen in die Typen von Java -> Xml-Type vornimmt und dann in die JAXB Klassen ablegt.
 

Foermchen82

Top Contributor
Ja ich denke mal auf eine eigenes kleines Framework auf JAXB Basisi wird es wohl hinaus laufen. Na dann stürz ich mich mal ins Gewühl.

Danke!
 

Wildcard

Top Contributor
Ich würde mir mit EMF aus der XSD ein ecore Modell erzeugen lassen, dann die XML einlesen und das ecore programmatisch entsprechend anpassen. Wenn die Daten erst zur Laufzeit vorliegen, dann komplett mit dynamischem EMF, ansonsten aus dem ecore Klassen erzeugen lassen.
 

Wildcard

Top Contributor
Anders als bei JaxB kann EMF Modelle nicht nur aus Annotierten Klassen und XSD erstellen, sondern auch programmatisch, aus UML, aus XMI aus Grammatiken, per Editor,...
All diese Quellen führen letzlich auf ein Meta Modell, das ecore. Dieses ecore kann dann verwendet werden um Klassen zu generieren, oder komplett dynamisch verwendet werden (auf höherer Ebene als Java Reflektion).
So wie ich es verstehe kommt ein Teil der Informationen aus einer XSD und ein anderer Teil aus einer XML, also würde ich initial aus der XSD ein Ecore erzeugen und es dann programmatisch mit den Informationen aus der XML anreichern.
 

Noctarius

Top Contributor
Hm ich muss mich glaub ich echt mal mit EMF auseinandersetzen... Meine Freundin tötet mich noch *gg*
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben