112 Stimmen

Was ist JAXB und warum sollte ich es verwenden?

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.

8voto

oxbow_lakes Punkte 131223

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!

7voto

Prashant_M Punkte 2650

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.

4voto

LostMohican Punkte 2904

Sie können auch JIBX überprüfen. Es ist auch ein sehr guter XML-Datenbinder, der sich auch auf OTA (Open Travel Alliance) spezialisiert hat und von AXIS2-Servern unterstützt wird. Wenn Sie nach Leistung und Kompatibilität suchen, können Sie es hier überprüfen:

http://jibx.sourceforge.net/index.html

0voto

JAXB bietet eine verbesserte Leistung durch Standard-Marshalling-Optimierungen. JAXB definiert eine Programmier-API zum Lesen und Schreiben von Java-Objekten aus und in XML-Dokumente, was das Lesen und Schreiben von XML über Java vereinfacht.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X