sax, stax, jdom, jaxb? List von Objekten speichern und laden

robochris

Aktives Mitglied
Hallo Zusammne,

im Moment bin ich auf der Suche nach der richtiigen Methode um bestimmte Eigenschaften einer Objektliste als XML zu speichern.

Meine Objektliste besteht im wesentlichen aus graphischen Icons. Deren Atribute sind

- x-Position
- y-Position
- Pfad zum Icon-Bild
- Pfad zum zugehörigen Sound

( forum.hobby-roboter.de • Information )

Mit welcher Methode könnte ich die Liste am besten als XML-File speicher und später wieder laden? Ist das hier geeignet:
section_1_3-Hello-World.html — Java.net ?
 
Zuletzt bearbeitet von einem Moderator:
Für JAXB spricht, dass es sehr bequem ist: "Hier XML, dort Objekt mit ein paar Annotations, mach mal..."

SAX ist gut, wenn du die eigentliche XML-Struktur gar nicht brauchst, sondern nur ein paar Daten aus einem großen XML herausfischen musst.

DOM macht nur Sinn, wenn du nicht weißt, wie das jeweilige XML aussehen wird, und du es sozusagen "erforschen" musst. Bei bekannter Struktur ist es JAXB unterlegen.

Mit Stax habe ich keine Erfahrung. Es arbeitet wohl umgekehrt wie SAX: Während du dort "informiert" wirst, wenn SAX an einem Knoten oder so "vorbeikommt", gibst du bei Stax die Abarbeitungsschritte selbst vor (so habe ich es zumindest verstanden)

In deinem Fall würde ich auch zu JAXB raten.
 
Nur dass du damit die ganze Struktur im Speicher hältst, während SAX nur "durchscannt". Für Massendaten ist SAX unschlagbar - wenn auch unhandlich. Bei kleineren Datenmengen kann DOM die bessere Lösung sein - aber wenn man eh ein Objekt draus machen will, ist normalerweise JAXB besser.
 
Weiterer Vorteil von Sax/Stax ist auch, dass diese Stream basiert arbeiten, d.h. nicht das komplette XML in den Arbeitsspeicher laden. Bei der Verarbeitung von großen XML Dateien, ist das mit DOM einfach nicht mehr möglich.
 

Neue Themen


Zurück
Oben