Java Code aus XML Datei generieren

nettchen

Aktives Mitglied
Hallo,

ich suche nach einer Möglichkeit aus xml Java Code zu generieren.
Über die Suche habe ich leider nichts direkt passendes gefunden
Bei den xml Dokumenten handelt es sich um einfache Dokumente, mit Elementen und Attributen.
Aus diesen XML Dokumenten sollen nun Java Klassen werden, die hauptsächlich aus gettern und settern bestehen. Da diese sich nicht groß unterscheiden, wollte ich sie gerne generieren.
Also noch mal ausführlicher. In der xml Datei befinden sich 3 elemente mit Attributen. Die Elemente kommen wiederholt vor. Für jedes Eleemtn soll in abhängigkeit von den attributen eine getter und setter methode generiert werden.

Hatte schon mal ein bischen in xslt reingelesen, aber da wird meistens html generiert, was mir nicht sonderlich weiterhilft.
Kennt ihr ein Buch einen Link in dem direkt Java Code erzeugt wird, oder ist xslt dafür nicht geeignet.

Ein weitere Anforderung die ich habe, ist das ich die erzeugten Dateien bearbeiten will, also um weitere Methoden ergänzen etc.
Es sollte aber trotzdem möglich sein die Generierung zu wiederholen, falls das xml angepasst wird. Die hinzugefügten methoden sollen dann erhalten bleiben.
Die erzeugten sollen überschrieben werden.
Ich hatte überlegt dafür Annotationen zu verwenden.
Ist dafür xlst geeignet oder ist ein anderes Verfahren/Methode/Tool sinnvoller?

Ich hatte auch schon überlegt das xml auszulesen, in eine Arraylist von Objekten zu speichern und dann daraus den Code zu generieren. Allerdings habe ich dafür kein Tool/lig gefunden, mit welchem man die Transformierung durchführen könnte.
 

Noctarius

Top Contributor
Wie sieht denn der XML Code aus? Ist das schon eine Art DSL oder ist es nur beschrieben was gebraucht wird?

Ein kleines Beispiel wie das XML und der entstehende Java-Code aussehen wäre gut.
 

nettchen

Aktives Mitglied
Ok, hier ein ausschnitt aus der xml Datei. Mir geht es um das element guielement.

Will damit keine gui generieren, sondern benötige das für die Testerzeugung.

[XML]<?xml version="1.0" encoding="UTF-8"?>
<mask>
<sektionList>
<Sektion name="Allgemeine Vorgangsangaben" type="TITLED_SECTION" expanded="true">
<GuiElement name="Eingangsdatum:" typ="Anzeige" layoutData="cell 0 1"/>
<GuiElement fieldKey="Eingangsdatum" typ="Datum" layoutData="cell 1 1"/>
<GuiElement name="Mandant:" typ="Anzeige" layoutData="cell 2 1"/>
</Sektion>
</sektionList>
</mask><?xml version="1.0" encoding="windows-1250"?>

[/XML]
 

nettchen

Aktives Mitglied
hallo,

ja die letzte Zeile muss weg, das war ein copy& Paste fehler. :)
Habe die xml Datei noch mal geringfügig abgeändert um ein besseres beispiel zu finden

[XML]<?xml version="1.0" encoding="UTF-8"?>
<mask>
<sektionList>
<Sektion name="Allgemeine Vorgangsangaben" type="TITLED_SECTION" expanded="true">
<GuiElement fieldKey="Mandant" typ="Combo" layoutData="cell 3 1"/>
<GuiElement fieldKey="Betrag" typ="Eingabe" layoutData="cell 1 3"/>
<GuiElement name="Gutschrift" fieldKey="Kz_Gutschrift" typ="CheckButton" layoutData="cell 0 4"/>
</Sektion>
</mask>
[/XML]

Herauskommen sollte in etwa so etwas. Die erwähnten Annotationen habe ich jetzt erstmal herausgelassen. Hffe es sind keine Syntaxfehler enthalten, habe das jetzt erstmal freihgand geschrieben um das Prinzip zu demonstrieren.

Java:
public class PhaseADialog extends BaseDialogPage {

       private SWTBotText betrag;
       private SWTBotCombo mandant;
       private SWTBotCheckboxButton gutschrift;

	public PhaseADialog() {
		super(GeneralMessages.TXT_TITLE);
				betrag = getShellBot().textWithLabel(Betrag);
				mandant = getShellBot().comboWithLabel(mandant);
				gutschrift = getShellBot().checkboxbutton(KZ_Gutschrift);
	}
	
  public void setBetrag(String value)	
	{
		betrag.setText(value);
	}
	
	 public void setMandant(String value)	
	{
		mandant.setText(value);
	}
	
	 public void setGutschrift(boolean value)	
	{
		if (value)
			gutschrift.select();
		else
			gutschrift.deselect();;
	}
	
	 public String getBetrag()	
	{
		return betrag.getText();
	}
	
	public String getMandant()	
	{
		return mandant.getText();
	}
	
	public boolean getGutschrift()	
	{
		return gutschrift.isSelected();
	}

}
 

fastjack

Top Contributor
Ich habe schon in verschiedenen Projekten mit XSLT Java-Klassen generiert, das war mir aber auf Dauer immer etwas friemelig. Ich würde das XML einfach mit einem DOM durchparsen, vielleicht XPath oder so, whl. würde ich aber ein Schema dafür schreiben und die Teile mit JAXB einlesen.

Ein weitere Anforderung die ich habe, ist das ich die erzeugten Dateien bearbeiten will, also um weitere Methoden ergänzen etc.

Dafür würde ich die generierten Klassen einfach beerben. Somit kannst Du ohne viel Streß immer wieder neu generieren, ohne die eigenen Methoden zu verlieren.
 

Wildcard

Top Contributor
Ich würde die XML in ein Java Modell überführen (am einfachsten EMF), und dann eine Template Sprache verwenden um den Quelltext zu erzeugen. Eclipse hat da recht viel, zum Beispiel JET oder xpand.
 

mfernau

Bekanntes Mitglied
Wenn Du über die dtd/xsd verfügst würde ich ebenfalls zu jaxb tendieren. Ich komme mit den JAXB Strukturen gut zurecht und sie lassen sich einfach erzeugen. Mit drei zeilen Code kannst Du eine solche XML-Datei dann einfach parsen und in Deine Objekt-Strukturen überführen. Genauso leicht geht es dann auch wieder anders herum. Also aus Deinem Objekt-Baum eine XML-Datei zu erzeugen.
JAXB wird im übrigen auch als Databinding für diverse SOAP-Parser verwendet.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Q Atom/RSS-Feed lesen - per XSD zu Java-Code XML & JSON 4
G Java Code in XML XML & JSON 4
W jaxws jaxb wsdl Java-Klassen generieren und binding.xml verwenden XML & JSON 1
iman XML Attribute mit JAVA einlesen mit Spring Batch XML & JSON 0
T Tags in XML Datei mit Java erstellen XML & JSON 3
E JAXB und java.nio.file.Path XML & JSON 4
B XML-Daten mit SAX Parser verarbeiten in Java XML & JSON 4
S Java REST Client + Json XML & JSON 8
L Lässt sich folgendes so oder so ähnlich mit Java und XML umsetzen XML & JSON 3
K XML Datei erstellen und Daten daraus in Java auslesen XML & JSON 6
L login - Java IOException jaas.config File or Directory not present XML & JSON 1
M Text eines Elements in XML Datei mit JAVA bearbeiten und kompletten Element-Zweig hinzufügen XML & JSON 16
J JSON zu Java mit der GSON Google API XML & JSON 0
B JAXB - java.util.Locale does not have a no-arg default constructor XML & JSON 2
E JAVA simple.JSONObject cannot be cast to simple.JSONArray XML & JSON 9
P Einheiten in Java XML & JSON 4
T Visualisierung von XML Dateien in einer Java SwingGui XML & JSON 11
A WSDL und Java XML & JSON 5
A XMLRPC für Java XML & JSON 3
S XML auf Java Klassen Mappen XML & JSON 10
N Java XML schreiben funktioniert nicht XML & JSON 1
B aus xsd Java Klassen generieren XML & JSON 3
MiMa Mehrfachvariablen in Java durch XML XML & JSON 4
Q XML-File als Objekt in Java XML & JSON 6
Q Konvertierung von json zum Java Objekt nach vorgegebenem Schema XML & JSON 3
AMStyles XPATH Befehl SVG Java XML & JSON 2
S Wie aktualisiert man den Java-Kode mit FOP1.0? XML & JSON 1
L XSL: Aufruf Java-class XML & JSON 11
GUI-Programmer java.io.File aus .jar beziehen XML & JSON 6
A Unterschiedliche Datenstruktur XML <-> Java mappen XML & JSON 9
R XSD aus Java Klassen erzeugen?? XML & JSON 2
N xsd pattern in java einlesen XML & JSON 6
M java.lang.RuntimeException: Failed to parse document XML & JSON 4
F SOAP in Java XML & JSON 6
S JAXB 2 und Java Annotationen/Interfaces generieren XML & JSON 3
N Google Wetter XML (nur current_condition) auslesen mit Java XML & JSON 15
F Einlesen von JDBC connection in Java von XML XML & JSON 4
D xsd->java mit Eclipse?! oder wie? XML & JSON 27
M Probleme mit XPath bei Java XML & JSON 5
_dp Java XML Parse error: findet end-tags nicht XML & JSON 10
V JAXB schema 2 java XML & JSON 3
S XJC --> Java-Objects compile Problem XML & JSON 4
G Mit JSON Java und C# verbinden XML & JSON 4
K XML Datei in ein Java package „einbinden" XML & JSON 3
H Java - XML - Rekursion - Verwirrung XML & JSON 6
F XML Datei in Java einlesen XML & JSON 4
J XSD > XML > Java XML & JSON 7
F XML mit Java XML & JSON 2
algorismi SVG Datein mit Batik in Java reinladen XML & JSON 3
S Java - Klassen erzeugen aus xsd bzw. wsdl XML & JSON 3
D ID's aus XML Datei rauslesen und in Java ausgeben XML & JSON 7
N value Wert einer XML Datei mit JAVA bearbeiten XML & JSON 21
Mike90 -xlsx Dateien in Java lesen XML & JSON 3
T StAX / SAX => Wie XML Datenstruktur in Java abbilden? XML & JSON 2
H XML plattformunabhängig/Open Source für Java XML & JSON 4
C Java-Imports bei Jaxb XML & JSON 8
slawaweis Problem mit XSLT (wahrscheinlich ein Bug in Java 6) XML & JSON 16
Fadi .classpath(XML) mit Java lesen XML & JSON 2
M Frage zu Erklärung im Online book "Java ist auch eine I XML & JSON 4
M Problem mit FOP in Java Programm XML & JSON 2
H Fop / Java /Fonts XML & JSON 6
H XSL Aufruf via Java mit neuen Fonts XML & JSON 9
T Java Klasse für gegebenes XML erstellen XML & JSON 4
M Xlink in Java-Objekt umwandeln XML & JSON 9
S Jdom+java webstart XML & JSON 4
P Einstieg in XML mit Java XML & JSON 3
G MS-Word Dokument mit Java erstellen XML & JSON 2
N AXIOM mit Java 1.4 XML & JSON 4
J DTD in Java integrieren? XML & JSON 3
L XML Datei in Java angeben Pfad? XML & JSON 3
G Problem mit XML-Schema Validierung mit Java XML & JSON 12
G XML mit JAVA an URL senden (http post) XML & JSON 12
D Java DOM Ausgabe ohne XML header XML & JSON 4
S XML Strings in JAVA einlesen, aber wie? XML & JSON 8
S Java 6 und Xerces-j-2-9 XML & JSON 3
E XML mit java einlesn XML & JSON 2
L mit Java eine HTML-Datei erstellen XML & JSON 3
O OpenDocument-Tabelle mit Java lesen und schreiben XML & JSON 3
G JAVA und DOM XML & JSON 2
M Java und XSLT: Performanz-Problem XML & JSON 5
P DTD -> Java XML & JSON 4
K xml --> sax --> java objekthierarchie XML & JSON 2
B DTD aus Java erzeugen XML & JSON 2
S JAVA XML Parser der einen String parst XML & JSON 3
K java + xpath -> performanceproblem XML & JSON 9
J schema-Validierung mit xerces und jdom: bug in java 1.4? XML & JSON 9
A Kann XML weitere XMLs inkludieren? Oder kann es Java? XML & JSON 5
vogella *Erledigt* XML und Java DOM Tutorial XML & JSON 3
T SOAP mit Java ohne HTTP Server möglich? XML & JSON 3
C HTML-Befehle per Java entfernen XML & JSON 7
W Java und XML - help request XML & JSON 3
M [SOLVED]Ausgabe mit Java XML & JSON 2
P Unterschiede java 1.4 und 1.3 XML & JSON 3
M generate SVG with java XML & JSON 2
G java+xml mit dom4j XML & JSON 4
P XSLT in Java verwenden XML & JSON 7
M Auswertung arithmetischer Ausdrücke mit SAX und Java XML & JSON 7
S XMl Dateien in Java schreiben XML & JSON 4
B XML-Document mit Java erzeugen und zuruecksenden XML & JSON 1
J Beispiel aus Java Magazin 03/2004 gesucht ! XML & JSON 6

Ähnliche Java Themen

Neue Themen


Oben