Wann und warum würden Sie Apache commons-digester verwenden?

8

Von allen Bibliotheken zum Eingeben und Ausgeben von xml mit Java, unter welchen Umständen ist commons-digester das Werkzeug der Wahl?

    
carrier 06.02.2009, 17:40
quelle

3 Antworten

8

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.

    
Stephen Pape 06.02.2009 19:13
quelle
4

Mein erster Versuch wäre "nie" ... aber vielleicht hat er seinen Platz. Ich stimme mit eljenso überein, dass es vom Wettbewerb übertroffen wurde.

Für eine gute effiziente und einfache Objektbindung / -kartierung ist JAXB viel besser, oder XStream . Viel bequemer und noch schneller.

    
StaxMan 09.04.2009 06:21
quelle
1

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.

    
eljenso 06.02.2009 19:20
quelle

Tags und Links