6

Even though I've been a developer for awhile I've been lucky enough to have avoided doing much work with XML. So now I've got a project where I've got to interact with some web services, and would like to use some kind of Object-to-XML Mapping solution.

The only one I'm aware of is JAXB. Is that the best to go with? Are there any other recommendations?

One catch - I'm stuck using Java 1.4, so I can't do anything with annotations.

bpapa
  • 21,409
  • 25
  • 99
  • 147

4 Answers4

10

JAXB is the best choice:

EclipseLink JAXB (MOXy) is the best implementation:

MOXy is a JAXB implementation with Extensions

MOXy has an external configuration file (based on JAXB annotations with extensions):

Has XPath based mapping, for deep mapping:

Designed to handle ORM mapped objects, including support for bidirectional relationships:

bdoughan
  • 147,609
  • 23
  • 300
  • 400
6

If you're calling a web-service with a WSDL, JAXB is absolutely the best option. Take a look at wsimport, and you're be up and running in 10 minutes.

I don't think JAXB 2.0 will be possible on Java 1.4. You may need to use Axis instead:

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

This will generate similar stubs to JAXB.

If you don't have a WSDL or XSD, you can always generate one.

Chase Seibert
  • 15,703
  • 8
  • 51
  • 58
3

JIBX - known for performance

JAXB2 - Ease of use

Castor - Ease of use

others - XMLBean, Xstream

Ach
  • 31
  • 1
3

There's XStream. I seem to remember I used that ages ago, and it was fine. Can't say I have enough experience to recommend it for or against, but it's worth checking out just as an alternative.

Jon Skeet
  • 1,421,763
  • 867
  • 9,128
  • 9,194
  • XStream is awesome for Java object -> XML. It's not ideal for the reverse. Assuming you have a WSDL or XSD, JAXB is better at the latter. – Chase Seibert Jan 05 '09 at 16:41
  • 1
    In my experience, XStream is always very tempting to start with, since it's so easy, but then it ends up being so buggy that I always abandon it for JAXB eventually. – skaffman Nov 19 '09 at 10:35