Premetto che non devi installare nè importare niente, anche l'utility è compresa nell'installazione standard di java.
Per iniziare crei le classi, da linea di comando:
A questo punto importi le classi nel progetto, facciamo conto che le mie stanno nel package classi.jaxb (avrò quindi fatto ad escodice:xjc -p <nome_package> <xml_schema>.xsd -d <directory_dove_verranno_create>
xjc -p classi.jaxb mySchema.xsd -d .
)
Per creare un documento basta che popoli le classi che ti servono e le inserisci nella classe che rappresenta la radice del documento xml, dopodiché devi ottenere un marshaller, in questo modo:
Da notare che il codice sopra va fatto una tantum, dopodiché per creare un documento devi fare solocodice:JAXBContext jc; //oggetto jaxb context Marshaller marshaller; //oggetto marshaller try { jc = JAXBContext.newInstance("classi.jaxb"); //otteniamo un context dalle classi marshaller = jc.createMarshaller(); //creiamo marshaller marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, new Boolean(true)); //giusto per estetica settiamo a true l'opzione che formatta il documento su più linee
Il bello è che con marshal puoi mettere il documento dove vuoi: un file, una socket, una stringa...codice:marshaller.marshal(radix, outputstream); //radix è un'instanza della classe radice opportunamente popolata
Per ottenere le classi xml popolate associate a un file xml esistente che risponde a quello schema il procedimento è molto simile, solo che ti servirà un Unmarshaller.
Aggiungo che, chi ti ha consigliato JDom, è sicuramente ignorante di jaxb o affezionato ad approcci vecchi: a parte la facilità d'uso jaxb tiene molto in ordine il codice, infatti con JDom ogni cosa è un Element/Child e alla lunga finisci per perderti, così invece gli elementi sono espliciti e, ripeto, l'approccio è java 100%.
Un sito riassuntivo che fa vedere l'unmarshaller e i vari modi del marshaller è:
http://download.oracle.com/docs/cd/E...arshaller.html

Rispondi quotando