Di tutte le librerie per l'input e l'output di xml con java, in quali circostanze lo strumento di scelta è il digest-commons?Quando e perché dovresti usare Apache commons-digester?
risposta
Dal digester wiki
Perché utilizzare digestore?
Digester è uno strato sopra l'API del parser SAX xml per semplificare l'input xml del processo . In particolare, il digestore semplifica la creazione e inizializza un albero di oggetti basato su un file di input xml.
L'uso più comune per digestore è di configurazione in formato XML file di processo, la costruzione di un albero di oggetti sulla base di tali informazioni.
noti che digestore può creare e inizializzare veri e propri oggetti, vale a dire le cose che riguardano gli obiettivi di business della l'applicazione e hanno reali comportamenti. Molti altri strumenti hanno un obiettivo diverso : per creare un modello di i dati nel documento XML di input, come un DOM W3C, ma un po 'più amichevole.
e
E a differenza di strumenti che generano classi, è possibile scrivere le classi della vostra applicazione prima, poi successivamente si decide di utilizzare digestore per costruire loro da un file di input XML. Il risultato è che le classi sono vere classi con comportamenti reali, che si inizializza da un file xml anziché semplici "structs" che contengono solo dati.
Come esempio di ciò che non è utilizzato per:
Se, invece, siete alla ricerca di una rappresentazione diretta del documento di input XML, come dati piuttosto che veri e propri oggetti, allora digestore è non per te; DOM, jDOM o altri ancora strumenti di binding diretto saranno più appropriati.
Quindi, digester mapperà XML direttamente in oggetti java. In alcuni casi è più utile che dover leggere l'albero ed estrarre le opzioni.
Se si desidera creare e inizializzare oggetti "veri" da XML, utilizzare un contenitore di fagioli decente, come quello fornito da Spring.
Inoltre, la lettura nell'XML e l'elaborazione autonoma tramite XPath o l'utilizzo di strumenti di collegamento Java/XML come Castor, sono alternative valide e forse più standard.
Ho lavorato con Digester quando utilizzo Struts, ma sembra che sia stato superato da altri strumenti e framework per i possibili usi che ha.
- 1. Perché dovresti usare umask?
- 2. Perché non dovresti usare DISTINCT quando potresti usare GROUP BY?
- 3. Perché dovresti usare il database Oracle?
- 4. Dovresti mai usare this.setState() quando usi redux?
- 5. Cursori Firebird - Perché dovresti usare uno
- 6. quando dovresti usare __bridge vs. CFBridgingRelease/CFBridgingRetain?
- 7. Quando dovresti usare try/catch in JavaScript?
- 8. Perché e quando usare __noop?
- 9. Quando dovresti usare "prototipo" durante l'aumento degli oggetti in javascript?
- 10. Dovresti o non dovresti usare i file pennino?
- 11. Quando dovresti scegliere di usare InnoDB in MySQL?
- 12. In Qt, quando dovresti usare RISORSE vs DISTFILES vs OTHER_FILES
- 13. Perché dovresti usare "extern void my_func();" invece di includere "my_utils.h"?
- 14. Quando dovresti usare === vs ==,! == vs! =, Ecc. In javascript?
- 15. perché dovresti usare WHERE 1 = 0 istruzione in SQL?
- 16. Perché dovresti usare un puntatore vuoto in questo codice?
- 17. Quando dovresti usare target = "_ blank" sui tuoi link?
- 18. Perché e quando usare angular.copy? (Copia profonda)
- 19. Spring hibernate template quando usare e perché?
- 20. Quando devo usare un Bigarray e perché?
- 21. Quando usare undef_method e quando usare remove_method?
- 22. Perché dovresti bloccare i thread?
- 23. Perché dovresti usare Dapper? Inoltre, chiunque può commentare Dapper Vs ADO.NET Pro e Contro
- 24. quando usare Task e quando usare Thread?
- 25. Quando usare node.js e quando usare ajax?
- 26. Quando usare viewDidLoad e quando usare awakeFromNib
- 27. Perché dovresti tornare (0 * ap ++)?
- 28. Che cos'è un mock e quando dovresti usarlo?
- 29. Come usare Apache DBSCANClusterer
- 30. Perché dovresti eseguire l'override di wndproc
Una risposta un po 'tarda: apache digester non è un parser completo e talvolta può essere molto lento. C'è una nuova opzione chiamata estesa vtd-xml che può processare documenti xml fino a 256 GB, supporta la mappa completa di Xpath e mem –