What is the difference between Castor XML and JAXB binding since both are binding java object to XML and vice versa.
Updated :
As using Castor I can do this Assume packageA.ClassA
and packageB.ClassA
have same attributes and class name just that they were located in different package.
packageA.ClassA - > XML -> packageB.ClassA
By using JAXB if I am doing this Marshall object packageA.ClassA
to XML and from XML unmarshall into object packageB.ClassA
I got Casting error.
Please note that JAXB is an API, and there are multiple implementations available.
Sun provides a reference implementation and package it with J2EE (its available in J2SE 1.6 also). Castor was born before JAXB came out from Sun, and offers some extra features. But if all you want is plain XML binding, then the reference Sun implementation should work great.
There is a great article in JavaWorld on this. A bit old but most ideas explained there still holds good. And you wont find the article mentioning JAXB annotations, which have made things easier nowadays.
Simple is an easy to use binding framework, and works with minimal 'simple' configuration.
DOM is an entrirely different concept - its all about parsing and does nothing about binding. Using a DOM parser, you can pull out data from XML. But it doesn't give you an object mapping facility. So you still have to pull the data using DOM, and then write code to push this data to a java object.