Es gibt hier einen Kerl, der schwört, dass JAXB das Beste seit geschnittenem Brot ist. Ich bin gespannt zu sehen, was die Stack Overflow Benutzer über den Anwendungsfall von JAXB denken und was es zu einer guten oder schlechten Lösung für diesen Fall macht.
Antworten
Zu viele Anzeigen?JAXB ist großartig, wenn Sie nach einer externen XML-Spezifikation codieren müssen, die als XML-Schema definiert ist (xsd
).
Zum Beispiel haben Sie eine Handelsanwendung und müssen die Trades an die Uber Lame Trade Reporting App melden und sie haben Ihnen ultra.xsd
gegeben, mit dem Sie arbeiten sollen. Verwenden Sie den $JAVA_HOME/bin/xjc
-Compiler, um das XML in eine Reihe von Java-Klassen (z.B. UltraTrade
) umzuwandeln.
Dann können Sie einfach eine einfache Adapter-Schicht schreiben, um Ihre Handelsobjekte in UltraTrades
umzuwandeln und JAXB zu verwenden, um die Daten nach Ultra-Corp zu übermitteln. Viel einfacher als sich damit herumzuschlagen, Ihre Trades in ihr XML-Format zu konvertieren.
Wo alles zusammenbricht, ist, wenn Ultra-Corp sich tatsächlich nicht an ihre eigene Spezifikation gehalten hat und der Handels price
, den sie als xsd:float
angegeben haben, tatsächlich als double
ausgedrückt werden sollte!
Warum brauchen wir JAXB? Die entfernten Komponenten (in Java geschrieben) von Webdiensten verwenden XML als Mittel zum Austausch von Nachrichten untereinander. Warum XML? Denn XML gilt als leichte Option zum Austausch von Nachrichten in Netzwerken mit begrenzten Ressourcen. Daher müssen diese XML-Dokumente oft in Objekte und umgekehrt umgewandelt werden. Z.B.: Einfache Java POJO-Mitarbeiter können verwendet werden, um Mitarbeiterdaten an die entfernte Komponente (ebenfalls ein Java-Programm) zu senden.
class Employee{
String name;
String dept;
....
}
Dieses Pojo sollte in ein XML-Dokument umgewandelt (marshalled) werden, wie folgt:
...
...
Und in der entfernten Komponente wieder zurück in Java-Objekte aus XML-Dokumenten (Un-Marshall).
Was ist JAXB?
JAXB ist eine Bibliothek oder ein Werkzeug, um diese Vorgänge des Marshalling und Unmarshalling durchzuführen. Es erspart Ihnen diese Kopfschmerzen, ganz einfach.
- See previous answers
- Weitere Antworten anzeigen