Devo generare un numero di documenti XML da oggetti Java. Gli oggetti sono oggetti mappati ORM profondi e i documenti XML sono per un indice di ricerca (a la Lucene). Voglio essere in grado di creare un file di configurazione e alimentarlo con un oggetto Java e farlo sputare l'XML specificato nella configurazione. Idealmente la configurazione consisterebbe in una mappatura di proprietà (possibilmente profonde) sul lato java in XPath o qualcosa del genere sul lato XML.Che cos'è una buona libreria per generare XML arbitrario da Java?
JAXB non è adatto perché desidera creare un mapping uno a uno dai dati dell'oggetto ai nodi XML. Ho guardato JIBX e XStream ma nessuno di loro sembra progettato per fare quello di cui sto parlando.
In sostanza quello che voglio è Dozer, ma progettato per creare un documento XML come destinazione piuttosto che un altro bean Java. Dalle mie ricerche finora sembra che dovrò scrivere da solo. Qualcuno può offrire un'alternativa migliore?
MODIFICA: La soluzione non deve essere basata sulla possibilità di modificare i file Java di origine. I sistemi basati sull'annotazione sono completamente inutili ai miei scopi qui. Dovrebbe essere possibile definire "traduttori" per i singoli mapping così come sono in Dozer.
Va notato che devo essere in grado di specificare che un dato campo di input in java potrebbe essere emesso in diversi punti dell'output XML, forse in alcuni casi in alcuni casi e non in altri.
Ho già pensato di eseguire una sorta di traduzione diretta da Java a XML degli oggetti e quindi di eseguire il mio compito utilizzando XSLT, ma il problema è che si tratta di oggetti profondi con connessioni bidirezionali. Qualsiasi mappatura degli oggetti in XML avrebbe difficoltà a capire la profondità della gerarchia degli oggetti, anche se potesse tenere traccia di quali oggetti dovrebbero essere scontati perché erano già stati visti.
JiBX dovrebbe essere buono per questo, perché non ti piace? – skaffman