2010-08-16 11 views
5

Sto scrivendo una funzione di importazione di file XML sulla mia applicazione Java. Sto usando XOM per analizzare i file XML. Il codice per analizzare l'XML non è facile da capire, è qualcosa di codificato .getChild(3) e così via. È difficile seguire il codice rispetto al documento XML dichiarativo.Esiste un modo dichiarativo per analizzare gli oggetti XML in Java?

Non esiste un modo più gestibile per analizzare i documenti XML negli oggetti Java? Mi piacerebbe averlo in un modo più dichiarativo, dove posso specificare quali tag corrispondono a quali classi Java.

risposta

0

Ho finalmente trovato XStream che era facile da usare e analizza l'XML in modo dichiarativo.

+0

Check out: http://bdoughan.blogspot.com/2010/10/how-does-jaxb-compare-to-xstream.html –

1

Dai un'occhiata alla Apache Commons Digester.

+1

Il digestore è ancora un progetto attivo? Non vedo alcun aggiornamento sul loro sito da gennaio 2009. –

+0

Digester è stabile, meno attivo ma ancora mantenuto. –

3

Dai un'occhiata a JAX/B: approccio basato su annotazioni abbastanza semplice. È un'API Java standard.

Esistono strumenti per generare classi Java annotate da XSD o file XML di esempio. Descrivo il mio uso di esso in my blog

+0

Grazie, ho letto il tuo post sul blog. È necessario disporre di un IDE ottimale quando è possibile fare clic con il pulsante destro del mouse su un file XML e quindi generare l'XSD. Non trovo questa opzione in Eclipse che sto usando.Devo leggere su JAXB. – Jonas

+0

Controlla il supporto JAXB che viene aggiunto al progetto Eclipse Dali: http://www.eclipse.org/webtools/releases/3.2.0/NewAndNoteworthy/jpa.php –

1

Convenzionato JAXB (JSR-222) è la soluzione migliore. Si noti che JAXB è una specifica che significa che avete una scelta di implementazioni:

standard JAXB consente di specificare le mappature mediante annotazioni, MOXy JAXB consente anche di specificare i metadati tramite XML :

Se si desidera una soluzione mantenibile è necessario rompere il rapporto uno-a-uno tra gli elementi XML trovato nelle soluzioni di legame quasi tutti XML e usare XPath mappatura base utilizzato in Moxy:

2

Mi piace molto Simple per la conversione da XML a Java.

+0

Check out: http://bdoughan.blogspot.com /2010/10/how-does-jaxb-compare-to-simple.html –

1

Il framework XML Simple utilizza annotazioni su dichiarazioni di campo e di metodo nonché sulle definizioni di classe per mappare XML a Java e viceversa. È molto più leggero di JAXB (che tira in tonnellate di dipendenze). In realtà non ha alcuna dipendenza esterna. Ed è anche più veloce. Ho provato JAXB molte volte, ma ho trovato le annotazioni e le funzionalità scomode e ingombranti. Controlla lo Tutorial.

Problemi correlati