Necesito generar una cantidad de documentos XML a partir de objetos Java. Los objetos son objetos mapeados ORM profundos, y los documentos XML son para un índice de búsqueda (a la Lucene). Quiero poder crear un archivo de configuración y darle un objeto Java y escupir el XML especificado en la configuración. Idealmente, la configuración consistiría en un mapeo de propiedades (posiblemente profundas) en el lado de java para XPath o algo muy parecido en el lado de XML.¿Qué es una buena biblioteca para generar XML arbitrario desde Java?
JAXB no es adecuado porque quiere crear un mapeo uno a uno desde los datos del objeto a los nodos XML. Miré a JIBX y XStream, pero ninguno de ellos parece estar diseñado para hacer lo que estoy diciendo.
Esencialmente lo que quiero es Dozer, pero diseñado para crear un documento XML como su objetivo en lugar de otro Java Bean. De mi investigación hasta el momento parece que voy a tener que escribir esto yo mismo. ¿Alguien puede ofrecer una mejor alternativa?
EDITAR: La solución no debe basarse en la capacidad de modificar los archivos Java de origen. Los sistemas basados en anotaciones son totalmente inútiles para mis propósitos aquí. Debería ser posible definir 'traductores' para las asignaciones individuales tal como está en Dozer.
Se debe tener en cuenta que necesito poder especificar que un campo de entrada dado en java pueda mostrarse en varios lugares diferentes en la salida XML, tal vez se pueda transformar en algunos casos y no en otros.
Ya he considerado hacer algún tipo de traducción directa de Java a XML de los objetos y luego realizar mi tarea usando XSLT, pero el problema es que se trata de objetos profundos con conexiones bidireccionales. Cualquier mapeo de los objetos a XML tendría dificultades para determinar qué tan profundo en la jerarquía de objetos para ir, incluso si pudiera realizar un seguimiento de los objetos que deben descontarse porque ya se habían visto.
JiBX debe ser bueno para esto, ¿por qué no le gusta? – skaffman