Newsgroup: it.comp.java
Titolo: Java e XML, suggerimenti

Saluti a tutti,
 sto per affrontare il seguente problema:
devo salvare su file il contenuto di alcuni oggetti in formato XML.Gli
oggetti in questione sono classi che ho costruito io con un certo numero
di variabili private.
Lo scopo è quello di salvarli su file in modo che siano leggibili e in
modo da poterli rileggere e ricostruire gli oggetti originari in
seguito.(marshal/unmarhsal
Ho visto citate le seguenti soluzioni:
XMLEncoder/decoder che lavorano solo con i Beans.
XStream che sembra molto buono ma che non fa parte delle librerie standard
JAXB che sembra un qualcosa di più complesso e forse eccessivo per i
miei scopi.
Ho trascurato altre possibilità?
Secondo la vostra esperienza quale è la più adatta ai miei scopi?
Suggerimenti?
Ringrazio
P.s:Continuo ad approfondire la cosa e magari tra qualche ora posterò un
aggiornamento.

 aggiornamento.
Ciao,
Tarin
--
Tarin Gamberini
www.taringamberini.com
7538 CCF0 5AEB 036F FB47 47DE 0A0D 9ADC 5343 17CE
www.jugpadova.it
 - 
www.jugevents.org
 - 
www.parancoe.org

 serializzazione offerto dalla Java Serialization API.
Grazie,
Si conosco le basi(molto basi) di JPA.Ma il mio obiettivo per ora era
salvare l'oggetto su file anche per poter verificare se le informazioni
in esso contenute sono corrette dando una semplice lettura al file con
un editor.
Altrimenti con le JPA, alla fine dell'esperimento dovrei creare un
client per accedere al data base per visualizzare sullo schermo.
Per di più in questa fase salvare su file potrebbe rivelarsi sufficiente.
In seguito usare JPA sarà comunque una strada obbligata.. ma per ora
devo risolvere problemi del tipo: Le cose "funziano"?
Saluti

 Si conosco le basi(molto basi) di JPA.
Non JPA ma Serialization:
http://java.sun.com/developer/technicalArticles/Programming/serialization/


>> serializzazione offerto dalla Java Serialization API.
Scusa,
avevo letto male, comunque il problema persiste perché da quanto ho
studiato la serializzazione dovrebbe convertire oggetti in una forma
binaria e quindi impossibili da leggere od editare con un normale editor
testuale.
Saluti

 aggiornamento.
Saluti a tutti,
 vi rendo partecipi delle mie sperimentazioni.
Ho come prima cosa pensato di utilizzare una soluzione standard e quindi
mi sono orientato sulle XMLEncoder.
Trasformare le mie classi in Beans non sembrava troppo difficile, ho
aggiunto un costruttore() ad ogni classe, verificato di avere getter e
setter per ogni proprietà che seguissero le convenzioni.
Avevo inizializzato gran parte delle proprietà al di fuori del
costruttore per cui non mi serviva inserire codice all'interno del
costruttore.
Nel dettaglio le mie classi si compongono con altre classi, ma in alcuni
casi alcune di esse non vengono istanziate. (comunque la variabile ad
esse associate ha il valore di default che è null)
XMLEncoder->fallimento totale.. del tutto a caso decide di gradire
alcune classi invece di altre e quindi nell'xml compare solo ciò che gli
aggrada.
Numerosi tentativi di spostare le inizializzazioni non hanno sortito
effetti.
Indagando in giro sembra che XMLEncoder tenti di capire quali variabili
vengono modificate o meno guardando nel costruttore  e a zonzo nella
classe in un tripudio di reflections, ma non sono riuscito, forse per
colpa mia, a trovare un comportamento deterministico.
SECONDO TENTATIVO
XStream.. una gioia per gli occhi.
Ho rimesso le classi nella condizione iniziale a parte un paio di BUGFix.
Implementato la vesione XStream, "premi il tasto->salta il macaco"
Output perfetto..completo e leggibile.
Cosa dire.. sono perfettamente soddisfatto.Risolto un problema semplice
in modo semplice.
Adesso scaverò un pochetto su come si può personalizzare l'output e le
funzioni avanzate ma ho ottenuto in 20 minuti quello che con le
XMLEncoder delle JavaBeans non ho ottenuto in 3 ore e mezza di lavoro.
Cosa ne pensate? Avete qualche nota?
Saluti a tutti

 Saluti



Grazie,
 pur avendo risolto brillantemente con XStream, leggerò sicuramente
quanto riguarda jaxb.
La cultura generale è importante.
Ciao
Fabiano