Si desea tomar una decisión informada, debe tener claro por qué está traduciendo entre objetos XML y Java.La razón es que las diferentes tecnologías en este espacio intentan resolver diferentes problemas. Las diferentes herramientas se dividen en dos categorías:
- Enlace de datos XML: se refiere al proceso de representación de la información en un documento XML como un objeto en la memoria de la computadora. Típicamente, esto significa definir un XSD y generar un código fuente Java equivalente. La interoperabilidad entre diferentes idiomas es la principal prioridad (de ahí el uso de XSD), más típicamente para la implementación de servicios web basados en SOAP.
- serialización XML: se refiere a escribir un gráfico de objetos de memoria en una secuencia, para que pueda reconstituirse en algún lugar o en cualquier otro momento. Usted escribe las clases de Java a mano; la representación xml es de importancia secundaria. Además, la necesidad de rendimiento suele ser mayor y la necesidad de interoperación con otros lenguajes como .net suele ser menor.
Para la serialización xml, Xstream es difícil de superar. JAXB es el estándar para el enlace XML.
En cualquier caso, si está utilizando J2EE deberá prestar especial atención a las clases recuperadas de JPA, ya que los tipos de clase y los tipos de recopilación específicos de persistencia pueden confundir las herramientas de enlace/serialización.
+1 para JiBX. La gran ventaja que veo es la forma en que parece que se usa JiBX. Aunque la generación de código es una opción, parece haber mucho énfasis en escribir sus propias asignaciones para su propio modelo de datos. Cualquier cosa que me impida tratar con las clases generadas me hace feliz. Usé JiBX durante unos años y me encantó. No puedo decir lo mismo de Castor. :) – spaaarky21