jaxb validierung/verification vor marshalling

dermoritz

Bekanntes Mitglied
ich ziemlich neu bei jaxb, hab aber schon öfter xsd-Dateien gemacht und geb mir auch immer Mühe "Restrictions" einzubauen um eine gute Validierung zu haben. Nun hab ich mir mal Jaxb-Code mit xjc erzeugt und schwupps sind alle "Restrictions" weg. Das heißt es ist ein leichtes mit solchem code invalide XML-Dateien zu erzeugen. Da frag ich mich wofür ich aus der xsd überhaupt code generiert hab.
Nun frag ich mich ob ich irgendwas falsch mache oder verpasst habe um auch die entscheidende Information (nicht nur Struktur sondern auch Inhalt) der XSD in den Code zu retten.

Anders gefragt wie erzeuge ich Code mit dem ich Valide xml-Objekte erzeugen kann?
Die setter manuell mit Validierungen aufzumöbeln erscheint mir etwas bekloppt - macht man da Fehler oder ändert sich die xsd-Datei sind diese Arbeiten hinfällig.
Nun bin ich über https://jaxb-verification.dev.java.net/ gestolpert und Frage mich ob das das (einzige) Mittel der Wahl ist um valide Objekte zu bekommen. Amleibsten wäre mir ein JAXB compiler der die Restrictions "versteht" und entsprechende Setter bastelt - gibts sowas?

Muss man das verstehen: das gibts auch noch: https://jaxbvalidation.dev.java.net/
scheint irgendwie das selbe zu sein?!
^^beide scheinen sehr veraltet aber der Ansatz gefällt mir.

Mein Stand ist im Moment: per Schema-Objekt kann man zumindest das (un)marshallig validieren gegen das Schema. Für das marshalling ist das natürlich etwas spät - man baut fleißig Objekte, klebt sie zusammen und erst beim marshalling merkt man, das manche nicht valide sind. Um das zu verhindern müsste man nach jedem setter und jeder Instantiierung den marshaller anwerfen um zu schauen ob man ein valides Objekt im sinne des Schemas hat - irgendwie völlig bescheuert oder?
 
Zuletzt bearbeitet:

Wildcard

Top Contributor
Hmm, ok, dreimal die gleiche Antwort hintereinander, aber was solls. :)
Überleg dir mal auf EMF umzusteigen.
Eclipse Modeling - EMF - Home
EMF kann die Standard XSD Constraints out of the box validieren (direkt im Objektbaum, dafür musst du noch nicht mal serialisieren). Wenn du komplexere Constraints auf deinem Modell hast gibt es ein Validation Framework und kompletten OCL Support.
 

dermoritz

Bekanntes Mitglied
Vielen Dank,

bei irgendeinem gegoogle ist mir EMF auch untergekommen, aber ich hab nicht geschnallt, dass das sinnvoll sein könnte. EMF ist aber nicht nur für XML oder? Ist EMF das Mittel der Wahl ich bin z.B. auch auf XMLBeans gestoßen?!

Insegsamt erklärt das aber etwas, warum viele JAXB-basierte Geschichten am sterben sind, oder?
Die Objekt direkt mit dem XSD validieren zu können ist für mich essentiell. Ich versteh nicht wieso das JAXB nicht kann bzw. eventuell nur über ein totes Projekt wie das oben genannte. Oder hab ich etwas übersehen?
 

Wildcard

Top Contributor
EMF ist aber nicht nur für XML oder?
Nein, EMF ist ein Modelling Framework. Die eigentliche Persistenz und das Laden sind nur ein winziger Teil der Funktionalität. Die Persistenz muss auch auch nicht XML sein, möglich sind unter anderem:
Relationale DBs, Model Repositories, textuell, XML, XMI,...
 
Ä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
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
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