Aus dem Kocher-Wiki
Warum Digester verwenden?
Digester ist eine Schicht über dem SAX XML-Parser-API, um es einfacher zu machen Prozess-XML-Eingabe. Bestimmtes, Fermenter macht es einfach zu erstellen und Initialisiere einen Baum von Objekten basierend auf eine XML-Eingabedatei.
Die gebräuchlichste Verwendung für Digester ist Prozess xml-Format-Konfiguration Dateien, einen Baum von Objekten erstellen basierend auf diesen Informationen.
Beachten Sie, dass der Kocher und erstellen kann initialisieren wahre Objekte, dh Dinge das bezieht sich auf die Geschäftsziele von die Anwendung und real haben Verhaltensweisen. Viele andere Werkzeuge haben a anderes Ziel: ein Modell zu bauen die Daten im XML-Eingabedokument, Wie ein W3C-DOM tut es aber ein bisschen mehr freundlich.
und
Und im Gegensatz zu Tools, die generieren Klassen, können Sie Ihre schreiben die Klassen der Anwendung zuerst später beschließen, Digester zu bauen sie aus einer XML-Eingabedatei. Das Das Ergebnis ist, dass Ihre Klassen real sind Klassen mit echtem Verhalten, das zufällig aus einem XML initialisiert werden Datei, anstatt einfache "Strukturen" das halt Daten.
Als Beispiel dafür, wofür es NICHT verwendet wird:
Wenn Sie jedoch nach einer direkten Darstellung des XML-Eingabedokuments suchen, z Daten statt wahre Objekte, dann ist Digestor nicht für Sie; DOM, jDOM oder andere mehr Direkte Bindewerkzeuge sind geeigneter.
So wird Digester XML direkt in Java-Objekte abbilden. In einigen Fällen ist das nützlicher, als die Baumstruktur durchlesen und Optionen auswählen zu müssen.
Wenn Sie "echte" Objekte aus XML erstellen und initialisieren möchten, verwenden Sie einen ansprechenden Bean-Container, wie er von Spring bereitgestellt wird.
Auch das Einlesen der XML und die eigene Verarbeitung mit XPath oder die Verwendung von Java / XML-Bindewerkzeugen wie Castor sind gut und vielleicht mehr Standardalternativen.
Ich habe mit dem Digester bei der Verwendung von Struts gearbeitet, aber es scheint, dass es von anderen Tools und Frameworks für die möglichen Anwendungen übertroffen wurde.
Tags und Links java apache-commons-digester