JAXB 2 und JSR 303

S

Sym

Gast
Hallo,

ich generiere aus meinen XSDs mittels JAXB 2 meine Fachobjekte. Nun möchte ich diese im UI validieren und dafür JSR 303 Bean Validation verwenden.

Gibt es eine Möglichkeit Validatoren zu schreiben, die ich dann irgendwie im XSD nutzen kann, die dann wiederum als Annotation in der generierten Klasse zu finden sind?

Gruß und Dank
 

Wildcard

Top Contributor
Bist du an JAXB gebunden? Denn EMF scheint mir wesentlich näher an dem zu sein was du suchst.
EMF Modelle können ebenfalls aus XSD generiert werden, sind generell wesentlich mächtiger als JAXB Klassen. Die XSD Constraints können direkt auf den Objekten validiert werden und du kannst zusätzliche Constraints hinzufügen.
Weiterhin gibt es auch ein dediziertes Validierungsframework für EMF das noch flexibler ist und zum Beispiel eine Unterscheidung zwischen life und batch Constraints trifft.
 
S

Sym

Gast
Nein, ich bin nicht darauf angewiesen, allerdings wird JAXB häufig verwendet. Vielleicht muss ich mit EMF mal anschauen. Eine Lösung für JAXB kennt sonst niemand?
 

Wildcard

Top Contributor
Nein, ich bin nicht darauf angewiesen, allerdings wird JAXB häufig verwendet.
IMO nur weil viele EMF einfach nicht kennen, oder der Meinung sind das es an Eclipse gebunden ist.
Hält man beide Frameworks gegeneinander ist offensichtlich welches das bessere ist.
 
M

maki

Gast
Ich persönlich kenne aber leider kein Produktivsystem, welches dieses Framework einsetzt. :)
.. und ich persönlich kenne kein Produktivsystem welches SAP einsetzt, also ist es nicht relevant?

Man sollte auch mal über den Tellerrand sehen dürfen und sich nicht nur von seiner eigenen Wahrnehmung etwas vorgaukeln lassen ;)
 
S

Sym

Gast
.. und ich persönlich kenne kein Produktivsystem welches SAP einsetzt, also ist es nicht relevant?

Man sollte auch mal über den Tellerrand sehen dürfen und sich nicht nur von seiner eigenen Wahrnehmung etwas vorgaukeln lassen ;)
Ok, Du kennst ein Produktivsystem, welches EMF erfolgreich einsetzt und als Referenz dienen kann? :)
 

Wildcard

Top Contributor
Ok, Du kennst ein Produktivsystem, welches EMF erfolgreich einsetzt und als Referenz dienen kann? :)

Ich kann dir ehrlich gesagt auch nicht viele 'Produktivsysteme' nennen auf denen JAXB erfolgreich eingesetzt wird. Wer wirbt schon mit den Libraries die intern zum Einsatz kommen?

Ein paar Beispiele:
1. unsere eigene Software :)
Ohne groß ins Detail gehen zu wollen reden wir von recht verbreiteter Software im B2B Umfeld.
2. Eclipse
Ein Großteil der neueren Eclipse Projekte ist mehr oder weniger stark verzahnt mit Eclipse Modelling und EMF. Mit Eclipse 4 bildet EMF dann auch das Herzstück der Workbench.
3. IBM Websphere Application Server
Der Application Server (und nach meinem Wissen generell sehr viel der Java IBM Software) setzt stark auf EMF. EMF hat ursprünglich auch seine Wurzeln bei IBM und ist meines Wissens im Kern älter als Eclipse
4. EMF ist die Referenzimplementierung von OMGs EMOF Standard
5. Die NASA verwendet CDO (einen EMF Aufsatz für große verteilte EMF Modelle)
6. Viel im Banking und Automotive Sektor (oft zusammen mit Xtext) ohne jetzt auf die Schnelle Quellen gefunden zu haben

Wenn du ein wenig den Trends folgst dann ist insbesondere in Europa die Modelling Szene mittlerweile sehr aktiv mit EMF als einem der treibenden Faktoren.
Ich verwende EMF seit vielen Jahren produktiv und nur wenige Frameworks haben mich bisher so begeistern können.
 
M

maki

Gast
Ok, Du kennst ein Produktivsystem, welches EMF erfolgreich einsetzt und als Referenz dienen kann? :)
Mehrere, zB. bei der EADSM/Cassidian.

Da es sich um Rüstungsprojekte handelt wird damit aber nicht so offensichtlich geworben, die haben ja auch andere Probleme im Moment, aber TOPCASED zB. setzt u.a. auf EMF und Eclipse RCP auf.
 
S

Sym

Gast
Alles klar, ich hatte bisher damit noch keinen wirklichen Kontakt.

Mal sehen, ob das meine Probleme beheben kann. :)
 

Wildcard

Top Contributor
Alles klar, ich hatte bisher damit noch keinen wirklichen Kontakt.

Mal sehen, ob das meine Probleme beheben kann. :)

EMF ist sehr viel umfangreicher als JAXB, eine gewisse Einstiegshürde ist also vorhanden, das zahlt sich aber später mehr als aus. Ein großer Unterschied, bei JAXB geht alles um XML, bei EMF geht alles um Modelle. Für EMF ist XSD nur eine mögliche Form wie ein Modell formal erfasst werden kann ebenso wie XML nur eine mögliche Serialisierungsform für ein Modell ist.
Was grundsätzlich zu tun ist:
Du lässt dir von EMF auf Basis der XSD ein ecore (die formale Definition deines Modells) und ein Genmodel (enthält zusatzinformationen für den Codegenerator) erstellen und generierst daraus Java Code.
Die XSD Constraints bleiben dabei soweit wie möglich erhalten.
Mit dem Java Code hast du dann alles um eine XML einlesen, verändern, validieren und speichern zu können.
Wo die generierte Validierung nicht ausreicht, kannst du eigene Validierung einklinken. EMF Code kann problemlos von Hand erweitert und verbessert werden (ein weiterer Unterschied zu JAXB), denn der Code Generator kann manuellen und generierten Code mergen.
Validieren funktioniert ganz einfach über statische Methoden der Diagnostician Klasse. Dem Diagnostician übergibst du wahlweise ein Objekt oder Teilbaum aus deinem Modell, oder die ganze Resource und du bekommst eine Liste mit Validierungsfehlern zurück.

EMF kann dir auf Wunsch auch eine Example Klasse generieren (wird per Default gemacht wenn du die Unit Test Stubs generieren lässt) die zeigt wie man mit dem generierten Code XML Dateien lädt, bearbeitet und speichert.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
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 Projekt - JAXB, EMF oder doch DOM? XML & JSON 4
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
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
M Jaxb Annotationen, Wert als XML Element XML & JSON 2
J JCheckbox abfragen und serialisieren mit JAXB 2.0 XML & JSON 15
F JAXB erste schritte XML & JSON 6

Ähnliche Java Themen

Neue Themen


Oben