# Objekt-Generator aus XML und XSD



## Foermchen82 (29. Jun 2009)

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 (29. Jun 2009)

Warum machst du die Typendefinition nicht in XSD?


----------



## Foermchen82 (29. Jun 2009)

Weil das so vorgegeben ist.
Wenns nach mir ginge würd ich das klar machen.


----------



## Noctarius (29. Jun 2009)

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 (29. Jun 2009)

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!


----------



## Noctarius (29. Jun 2009)

Viel Spaß  Das Ergebnis würde mich echt interessieren falls du das zeigen darfst dann


----------



## Wildcard (29. Jun 2009)

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.


----------



## Noctarius (30. Jun 2009)

Herr Schaffner, wo war der Bahnhof doch gleich?


----------



## Wildcard (30. Jun 2009)

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 (1. Jul 2009)

Hm ich muss mich glaub ich echt mal mit EMF auseinandersetzen... Meine Freundin tötet mich noch *gg*


----------

