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



## robochris (22. Mai 2012)

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 &bull; 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 &mdash; Java.net ?


----------



## fastjack (22. Mai 2012)

Ich würde JAXB nehmen.


----------



## robochris (22. Mai 2012)

fastjack hat gesagt.:


> Ich würde JAXB nehmen.



Danke. Was würde denn gegen die anderen sprechen?

BTW: der obige Link zu meinem Programm funktioniert scheinbar nicht, deshalb hier noch mal der Richtige:

forum.hobby-roboter.de &bull; View topic - simplicityS


----------



## Landei (22. Mai 2012)

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.


----------



## faetzminator (23. Mai 2012)

JDOM ist IMHO die bessere Alternative von SAX. Kannst sehr einfach durch die Nodes navigieren.


----------



## Landei (23. Mai 2012)

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.


----------



## mvitz (23. Mai 2012)

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.


----------

