Was ist die beste Java OXM Bibliothek?
Frage
Auch wenn ich ein Entwickler für eine Weile gewesen habe ich das Glück gehabt habe dabei viel Arbeit mit XML haben vermieden. So, jetzt habe ich ein Projekt, wo ich habe mit einigem Web-Service zu interagieren, und möchte eine Art von Objekt-zu-XML-Mapping-Lösung verwenden.
Das einzige, das mir bewusst bin, ist JAXB. Ist das das Beste zu gehen mit? Gibt es noch andere Empfehlungen?
Ein Haken - ich bin mit Java 1.4 stecken, so kann ich nichts mit Anmerkungen machen.
Lösung
Wenn Sie einen Web-Service mit einem WSDL-Aufruf, JAXB ist absolut die beste Option. Werfen Sie einen Blick auf wsimport, und du bist sein und läuft in 10 Minuten.
Ich glaube nicht, 2.0 JAXB möglich sein wird, auf Java 1.4. Möglicherweise müssen Achse verwenden, anstatt:
java -cp axis-1.4.jar;commons-logging-1.1.jar;commons-discovery-0.2.jar;jaxrpc-1.1.jar;saaj-1.1.jar;wsdl4j-1.4.jar;activation-1.1.jar;mail-1.4.jar org.apache.axis.wsdl.WSDL2Java http://someurl?WSDL
Dies wird ähnlich Stubs JAXB erzeugen.
Wenn Sie nicht über eine WSDL oder XSD haben, können Sie immer
Andere Tipps
JAXB ist die beste Wahl:
- öffentliche API, die in Java SE 6
- Bindeschicht für JAX-WS (Web Services)
- Bindeschicht für JAX-RS (Rest)
- Kann XML Infoset erhalten
- Mehrere Implementierungen: Metro , moxy , JaxMe , etc
Eclipse JAXB (moxy) ist die beste Umsetzung:
moxy ist eine JAXB-Implementierung mit Erweiterungen
moxy hat eine externe Konfigurationsdatei (basierend auf JAXB Annotationen mit Erweiterungen):
- http://bdoughan.blogspot.com/2010/ 12 / erstreckenden-jaxb repräsentierte-annotations.html
- http://wiki.eclipse.org/EclipseLink/Examples/ moxy / Eclipselink-OXM.XML
Hat XPath basiertes Mapping, für tiefen Mapping:
- http://bdoughan.blogspot.com/2010/07/ XPath-based-mapping.html
- http: // bdoughan. blogspot.com/2011/03/map-to-element-based-on-attribute-value.html
- http://bdoughan.blogspot.com/ 2010/09 / XPath-basierte Mapping-geocode-example.html
Designed ORM abgebildeten Objekte zu handhaben, einschließlich der Unterstützung für bidirektionale Beziehungen:
Es gibt XStream . Ich glaube mich zu erinnern, den ich vor, dass Alter verwendet, und es war in Ordnung. Kann nicht sagen, dass ich genug Erfahrung zu empfehlen, für oder gegen, aber es ist lohnt sich nur als eine Alternative haben.
JiBX - bekannt für Leistung
JAXB2 - Einfache Bedienung
Castor - Einfache Bedienung
andere - XMLBean, Xstream