Projekt - JAXB, EMF oder doch DOM?

chrk

Mitglied
Hallo zusammen,

ich habe mein erstes größeres Projekt und leider komme ich überall auf unlösbare Probleme.

Als Input habe ich verschiedene XML/CSV Dateien, die unterschiedliche Stukturen bestizen aber die selbe Semantik.

Elemente wie:
<bs.acc.equi>50</bs.acc.equi>
<bs.acc.test>40</bs.acc.test>

Für die Struktur bestize ich ein großes XSD-Schema mit zusätzlichen XML-Dateien. In dem XSD-Schema sind etwa 2500 Elemente die mit dem Namen eine Baumstruktur ergeben. Das Schema ist vorgegeben und lässt sich nicht ändern. Alle Elemente vom Schema sind untereinander geschrieben z.B.:

<xs:element name="bs.acc" />
<xs:element name="bs.acc.equi" />
<xs:element name="bs.acc.test" />
usw.

Daraus würde ich gerne eine Baumstruktur in Java bilden. Das wäre am besten mit DOM. Danach die XML/CSV einlesen und die Baumstruktur befüllen. Das würde sich ja am besten über SAX realisieren. ???:L

Danach könnte ich bs.acc berechnen:
bs.acc (Parent)
bs.acc.equi 50 (Child)
bs.acc.test 40 (Child)

Das XSD Schema zu generieren und die XML mit dem Schema auszugeben und zu validieren würde ich mit JAXB machen. Jedoch kann es möglich sein, dass sich das Schema in 1-2 Jahren verändert. Um eine Persitenz zu erhalten wäre EMF die beste Möglichkeit?
 

Ullenboom

Bekanntes Mitglied
Im Idealfall überträgst du die XML-Dateien auf technologieunabhängige Domainobjekte und dann verarbeitest du sie weiter.

XML/CSV <> Werteobjekte <> Service-Schicht

Konverter kümmern sich um die Abbildung in ein technologieabhängiges Format, also XML oder CSV. In der Regel ist man bequem, und lässt sich aus einem Schema die Beans gleich generieren, und das ist auch OK sein, nur muss man sich gut überlegen, ob man diese aus der XML abgeleiteten Beans als zentrale Domain-Objekte in der Anwendung nutzen möchte.
 

chrk

Mitglied
Im Idealfall überträgst du die XML-Dateien auf technologieunabhängige Domainobjekte und dann verarbeitest du sie weiter.

XML/CSV <> Werteobjekte <> Service-Schicht

Konverter kümmern sich um die Abbildung in ein technologieabhängiges Format, also XML oder CSV. In der Regel ist man bequem, und lässt sich aus einem Schema die Beans gleich generieren, und das ist auch OK sein, nur muss man sich gut überlegen, ob man diese aus der XML abgeleiteten Beans als zentrale Domain-Objekte in der Anwendung nutzen möchte.

Vielen Dank! So wie ich es verstanden habe, soll ich aus dem Schema Java Beans Klassen erzeugen dort kann ich dann die XML/CSV einlesen?
 

HelgeW

Mitglied
Im Prinzip ja...
Aber diese Objekte sind vielleicht nicht die richtigen um sie dann für die Logik zu nutzen und zu persistieren. Daher Einlesen(eigentlich egal wie) => transformation in eigene Objekte => Business

So halte ich es auch...ich binde eine externe Schnittstelle an, die ich dann in eigene Objekte transformiere. Diese kommen dann in die DB und werden dort wieder ausgelesen und weiter verarbeitet. Wenn nun der externe Dienstleister seine schnittstelle modifiziert muss ich nur die Transformation anpassen...

Viel Spass
 

chrk

Mitglied
Okay, also sieht es bei meinem Beispiel ungefähr so aus:

bs.acc (Parent)
bs.acc.equi (Child)
bs.acc.test (Child)

Dafür wird eine ArrayList "bs" angelegt. Diese ArrayList besitzt wieder eine ArrayList mit "bs.acc" und dort sind dann die Elemente equi und test vorhanden. Wobei sich hier ja auch verkettete Listen anbietet.

Beide Elemente haben dann eine eigene Klasse mit get und set Methoden.

Nun lese ich das Schema über z. B. SAX ein und erstelle dann z. B. bei jedem neu vorkommenden Punkt eine neue ArrayList (in der ArrayList) und dazugehörige Java Klasse?

Dann hätte ich zum Schluss für jedes Element eine Java Klasse mit get/set Methoden und alle Elemente sind innerhalb von ArrayLists. Danach könnte ich so die Werte von Java Klassen zusammen addieren?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Neues Projekt - XML mit Editor, gleich EMF? XML & JSON 4
L Anfänger: dom4j in Projekt einbinden XML & JSON 4
8 Projekt: Microcontroller Visualisieren XML & JSON 10
8u3631984 jaxb XML Mapper - Root Element mit Attribut XML & JSON 20
W jaxws jaxb wsdl Java-Klassen generieren und binding.xml verwenden XML & JSON 1
Rakshan Unmarshalling multiple namespaces with jaxb XML & JSON 0
B JAXB und HTML XML & JSON 1
E JAXB und java.nio.file.Path XML & JSON 4
W jaxb-api XML Feld nicht gesendet setzt das Defaultvalue nicht XML & JSON 3
S Muss ich bei JAXB immer noch eine zusaetzliche List-Wrapper Klasse erstellen wenn ich mehrere Objekte serialisieren will..? XML & JSON 1
S JAXB mit mehreren zusammenhängenden .xsd-Files XML & JSON 0
N JAXB: Überflüssiges Wrapper-Tag für Map-Einträge XML & JSON 0
D JAXB mit Map und Color XML & JSON 2
K JAXB-XML unvollständig XML & JSON 1
K JAXB Unmarshelling XML & JSON 1
E JAXB und abstrakte Klasse(n) XML & JSON 0
B JAXB - Unmarshal -> Kinder bekommen und die Kinder von den Kinder XML & JSON 7
B JAXB - Marshal ArrayList XML & JSON 2
B JAXB - java.util.Locale does not have a no-arg default constructor XML & JSON 2
B JAXB-Fehler bei REST-Api XML & JSON 0
M JAXB HashMap Dynamisches Laden XML & JSON 0
M JAXB @XMLID und @XMLIDREF, wie Daten hinzufügen XML & JSON 2
P JAXB-Problem XML & JSON 1
A JAXB: XMLMixed generieren XML & JSON 0
R [JAXB] XmlRootElement und XmlType gemeinsam nutzen XML & JSON 0
I XML to Object - Mapping mit JAXB 1.0 XML & JSON 1
L JAXB - Generischen Wert mit Liste belegen XML & JSON 1
M XML-Datei mit JAXB und 2 Namespaces XML & JSON 0
K JAXB Annotation @XMLRootElement vererben XML & JSON 0
F JAXB Unmarshal - Kein "default Constructor" XML & JSON 2
F.S.WhiTeY JAXB: Schema nicht "erben" XML & JSON 2
B JAXB - manuell Klassen aus xsd XML & JSON 3
S Jaxb Unmarshalling Problem XML & JSON 4
S JAXB - Any Elementliste - wie Werte verändern? XML & JSON 4
R JAXB: A cycle is detected in the object graph. This will cause infinitely deep XML XML & JSON 6
M JAXB versucht abstrakte Klasse zu erzeugen XML & JSON 7
M JAXB: automatisches Groß schreiben Property XML & JSON 9
C JAXB: XML-Elemente einlesen und als XML-Attribute ausgeben XML & JSON 7
R sax, stax, jdom, jaxb? List von Objekten speichern und laden XML & JSON 6
J JAXB: Mehrmals abspeichern XML & JSON 3
D XML Einlesen mit JaxB XML & JSON 4
W JAXB Binding customization XML & JSON 4
L JAXB und Interfaces XML & JSON 4
S Problem with JAXB unmarshalling classes that have the same name in @XmlRootElement XML & JSON 2
eykarhorn JAXB namespace attribut aus rootelement entfernen XML & JSON 2
nrg JAXB - nor any of its super class is known to this context XML & JSON 3
S aus XML mit JAXB zu Baumstruktur XML & JSON 3
nrg JAXB generell auf XMLs übertragbar XML & JSON 22
Landei JAXB: Wert von übergeordneten Element XML & JSON 4
B PropertyChangeListener generieren mit JAXB (xjc) XML & JSON 3
G JAXB und verschachtelte Elemente? XML & JSON 6
G JAXB XML-Attribute feststellen XML & JSON 4
S JAXB 2 und JSR 303 XML & JSON 11
M [JAXB] @XmlAnyElement namespace XML & JSON 4
R JAXB Unmarshal XML & JSON 2
J JAXB und ArrayList XML & JSON 4
Landei Jpa2 -> jaxb??? XML & JSON 9
M JAXB - HashMap XML & JSON 1
dzim JAXB-Unmarshalling ignoriert/löscht Einträge aus XML - oder lässt sie verschwinden XML & JSON 3
S JAXB 2 und Java Annotationen/Interfaces generieren XML & JSON 3
ruutaiokwu jaxb eclipse plugin... XML & JSON 3
K JAXB: Klassen mit Annotation Lesen/Schreiben XML XML & JSON 3
R JAXB ausgewählte Felder XML & JSON 10
TiME-SPLiNTER JAXB: com.sun.xml.bind.v2.ContextFactory XML & JSON 3
V JAXB und leere Listen XML & JSON 2
L compareto(), equals() in JAXB generierten Dateien XML & JSON 3
D jaxb validierung/verification vor marshalling XML & JSON 3
J JAXB mit GregorianCalendar XML & JSON 4
HombreDelMundo JAXB can't handle interfaces XML & JSON 4
N Individuelles Wrapper-Element um Collection mit JAXB XML & JSON 6
B JAXB Unmarshalling mehrerer Objekte XML & JSON 2
V JAXB schema 2 java XML & JSON 3
B JPA + JAXB Mapping Problem XML & JSON 2
S Navigieren in unbekannten JAXB-Objecten XML & JSON 2
J JAXB NullPointerException im ContextFinder XML & JSON 6
H JAXB und STAX XML & JSON 2
H JAXB Probleme beim Unmarshalling XML & JSON 3
C Serialisierung mit JAXB XML & JSON 6
K JAXB und Maps -> Marshalling-Problem XML & JSON 6
S JAXB und viele verschachtelte Attribute XML & JSON 1
J JAXB - Map XML & JSON 2
O JAXB generierte Klassen sollen Serializable implementieren XML & JSON 1
aze JaxB: Nullelemente in Array nicht anzeigen XML & JSON 3
turmaline JAXB can't handle interfaces XML & JSON 20
sambalmueslie JAXB - Unmarshall ein XML-Document das aus zwei XSD Definitionen besteht XML & JSON 8
S JAXB und abstrakte Klasse(n) XML & JSON 4
P JAXB: Marshalling XML & JSON 7
aze JaxB Elemente in LinkedHashSet werden nicht wiededergegeben XML & JSON 3
M JAXB: Wie folgendes Konstrukt abbilden? XML & JSON 20
A Jaxb und Interfaces XML & JSON 12
B JaxB und XSD :-) XML & JSON 8
G JAXB - Marshaller - kein Rückgabewert XML & JSON 2
N XML will nicht weder JAXB noch XStream XML & JSON 8
F Zugriff auf durch JAXB erzeugte Object-Struktur... XML & JSON 6
C Java-Imports bei Jaxb XML & JSON 8
F Marshaling eines JAXB Objektes worin ein anderes JAXB Objekt eingeschlossen ist XML & JSON 6
K JAXB, Vererbung und Codegeneration XML & JSON 2
M XmlRootElement und JAXB XML & JSON 4
R JAXB: Aus einem Vector oder List XML Datei erstellen XML & JSON 1
G jaxb Vector (oder ähnliches) von Elementen generieren XML & JSON 6

Ähnliche Java Themen

Neue Themen


Oben