# XML Binding



## kammoun (8. Juni 2007)

Hallo Leute;
Ich muss XML-Dateien oder XML-Schemas nach JavaBeans umwandeln und zwar innerhalb einer Java-Applikation.
Ich habe,als Alternativen, JAXB, XMLBeans,Castor und ... aber das Problem dass bei allen diesen schon genannten Technologien muss mit dem Hand (ich meine anhand  der Console) die XML-Schemas kompiliert werden und davon automatisch die Objekte bzw. die Klassen oder DatenTypen generiert werden. Und das was ich eigentlich wollte. Das heisst ich möchte gern von einem XML-Datei oder XML-Schema eine Java-Klasse oder besser genannt eine JavaBeans.
Kann jemand mit alternativen bzw. Tipps villeicht mir helfen.
Danke für alle.
Kammoun


----------



## KlaDi (11. Juni 2007)

Hallo kammoun,

wenn Du Dir JAXB in der neuesten Version herunterlädst bzw. Java 6 als Laufzeitumgebung hast dann kannst Du Dir, mittels dem mitgelieferten Binding-Compiler xjc, aus einem XML-Schema Java-Klassen generieren lassen.

xjc findest Du entweder auf der Festplatteunter : C:\Programme\Java\jdk1.6.0\bin\xjc.exe oder in dem Ordner von JAXB \bin\xjc.exe.

Das generieren der Klassen geschieht dann mittels Konsole.
Einfach in das Verzeichnis wechseln und dann den Aufruf wie folgt:
xjc C:Schemae\meinschema.cxsd -d C:\Ausgabeverzeichnis -p mein.package.generierteKlassen

gruß klaus.


----------



## sisela (11. Juni 2007)

Hi,

ich hoffe, dass das jetzt nicht zu sehr offtopic ist aber finde es ziemlich unhandlich, bei jeder Änderung an der XML Struktur, einen neue Generierung anzuwerfen und was ist, wenn man nach einer Änderung am XML dies vergisst?
Hat jemand praktische Erfahrung damit?

Gruß


----------



## KlaDi (11. Juni 2007)

Hallo sisela,

also ich arbeite mit JAXB und als IDE habe ich Eclipse, da kann man sich xjc als External Tool einbinden und somit ist das generieren der Klassen kein Aufruf mehr durch mich auf der Konsole sondern ein paar Klicks innerhalb von Eclipse. Die Klassen werden dann automatisch generiert und die alten überschrieben.

Wenn man sich die Klassen selber schreibt, denn das ist glaube ich die einzige Alternative kann man auch vergessen diese zu ändern, wenn man etwas im XML-Dokument ändert.

gruß klaus.


----------



## kammoun (11. Juni 2007)

Hallo;
Mein Problem ist eigentlich das Konsole, das heisst ich muss diese Anwendung in meiner Applikation irgenwie miteinpacken.
zum Beispiel:
ich habe ein XML-Dokoment oder Schema: der "planets.xml" oder "planets.xsd" heisst und in meiner main methode soll der Aufruf in der folgenden Art sein:

                Datei myDatei = new Datei();
		myDatei.name = "planets";
		myDatei.format = "xml";
                // oder myDatei.format = "xsd";
		myDatei.dateiID = myDatei.generiereId();
		myDatei.targetFormat = "javaBean";
		// System Starten Das System ist von einem Thread-Pool gesteuert
		DateiPoolManagerServiceImpl myDateiPool =     DateiPoolManagerServiceImpl.getInstance();
		// myDatei Einbinden
		Datei zielDatei = new Datei();
		zielDatei = myDateiPool.do_Convert(myDatei,myDatei.targetFormat);
Die Methde do_Convert soll das Dokument oder datei in der Target-Format transformieren, und ich soll irgendwie die xjc von Jaxb oder etwas ähnliches benutzen um die XML-Dateien bzw. Schemas in JavaBeans umwandeln zu können.

Ich hoffe dass ich mein Problem anhand das Beispiel richtig geklärt habe, und für euch klarer geworden.
Vielen dank.
Kammoun


----------

