2009-01-05 12 views
6

Même si j'ai été développeur pendant un certain temps, j'ai eu la chance d'avoir évité de faire beaucoup de travail avec XML. J'ai maintenant un projet où je dois interagir avec certains services web, et je voudrais utiliser une sorte de solution Object-to-XML Mapping.Quelle est la meilleure bibliothèque Java OXM?

Le seul que je connaisse est JAXB. Est-ce le meilleur choix? Y a-t-il d'autres recommandations? Une capture - Je suis coincé en utilisant Java 1.4, donc je ne peux rien faire avec des annotations.

Répondre

6

Si vous appelez un service Web avec un WSDL, JAXB est absolument la meilleure option. Jetez un coup d'œil à wsimport, et vous serez opérationnel dans 10 minutes.

Je ne pense pas que JAXB 2.0 sera possible sur Java 1.4. Vous devrez peut-être utiliser Axis à la place:

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 

Cela générera des stubs similaires à JAXB. Si vous n'avez pas de WSDL ou XSD, vous pouvez toujours generate one.

3

Il y a XStream. Je me souviens d'avoir utilisé ça il y a longtemps, et ça allait. Je ne peux pas dire que j'ai assez d'expérience pour le recommander pour ou contre, mais ça vaut le coup de vérifier comme une alternative.

+0

XStream est génial pour l'objet Java -> XML. Ce n'est pas idéal pour l'inverse. En supposant que vous avez un WSDL ou XSD, JAXB est meilleur dans ce dernier cas. –

+0

XStream est très bon, mais il a des problèmes avec les espaces de noms. – duffymo

+1

D'après mon expérience, XStream est toujours très tentant pour commencer, car c'est tellement facile, mais il finit par être si bogué que je l'abandonne toujours pour JAXB. – skaffman

3

JiBX - connu pour la performance

jaxb2 - Facilité d'utilisation

Castor - Facilité d'utilisation

autres - XMLBean, Xstream

10

JAXB est le meilleur choix:

EclipseLink JAXB (MOXy) est la meilleure mise en œuvre:

Moxy est une implémentation de JAXB avec les extensions

Moxy a un fichier de configuration externe (basé sur les annotations JAXB avec des extensions):

A cartographie XPath, pour la cartographie en profondeur:

Conçu pour gérer des objets ORM mis en correspondance, y compris le soutien des relations bidirectionnelles:

Questions connexes