Xml als dateiformat für dateien eigener programme

hallo zusammen,

ich wollte mal zu obigem thema eure meinung hören. bisher benutze ich für präferenz-dateien meiner software immer ascii-dateien, die mit ‚;‘-getrennte einträge enthalten.
bringt mir das überhaupt vorteile auf xml-strukturierung für sowas umzusteigen? steht das im verhältnis zu dem erhöhten programmieraufwand, den ich dadurch habe?

ich bin gespannt und hoffe auf eure meinungen/erfahrungen.

gruß
tobias

Hallo tobias!

Vorteile XML:

  • XML ist ein standardisiertes Datenformat. Deshalb kann man das konkrete Datenformat vor der Implementierung festlegen, bei XML heißt das DTD („Document Type Defnition“). Diese Definition kann man z.B. in das Pflichtenheft mit aufnehmen. Die Dateien, die dann geschrieben werden, können mit Standardprogrammen (z.B. XMLSpy http://www.xmlspy.com) auf Korrektheit geprüft werden. Dieser Aspekt ist besonders wichtig, wenn verschiedene Arbeitsgruppen oder Unternehmen an einem Projekt beteiligt sind, da typischerweise Schnittstellenfragen häufig Streitpunkt sind. Mit XML kann man die Schnittstelle klar über eine DTD festlegen.
  • XML ist zusammen mit der DTD selbstbeschreibend.
  • Mit XML lassen sich komplexe Datenstrukturen modellieren.

Nachteile:

  • Aufwand.
  • Codeumfang. Grob gesagt gilt, dass jeder Code potenziell Fehler enthält. Je größer der Codeumfang ist, um so schwieriger ist das Gesamtsystem zu testen und bugfrei zu bekommen.
  • XML-Dateien werden wg. der Auszeichnungs-Tags ggf. groß.
  • Laufzeit: XML-Dateien zu schreiben oder zu lesen braucht Rechenzeit.

Quintessenz:

  • Wenn eine saubere und eindeutig definier- und überprüfbare Schnittstelle benötigt wird: XML verwenden
  • Wenn Du und Dein Programm die einzigen sind, die diese Dateien lesen: eigenes Format verwenden. Dies gilt um so mehr als dass Du nur flache Datenstrukturen benötigst.

Guten Rutsch!
Bernhard

Ich würde da widersprechen, IMHO sind XML-Dateien auch sehr praktisch für Konfigurationen u. ä. auf die andere Programme nicht zugreifen müssen.

Wenn du XML verwendest, dann kannst du die gewünschten Datenstrukturen über ein DTD oder XML Schema (letzteres eignet sich besser, da detailierte Beschreibung möglich) beschreiben.

Parsing und Validierung übernimmt dann ein XML-Parser den es für alle gängigen Programmiersprachen gibt.

Zugriff auf deine Konfiguration bekommst du dann über das Objektmodell des Parsers.

Das ist IMHO weniger Aufwand und weniger fehleranfällig als die ganzen Parsing-Routinen für die Datei selber zu schreiben.

Grüße, Robert

Re: Wieder mal ein Fall für Castor :smile:

bringt mir das überhaupt vorteile auf xml-strukturierung für
sowas umzusteigen? steht das im verhältnis zu dem erhöhten
programmieraufwand, den ich dadurch habe?

Hallo!
Was denn für ein erhöhter Programmieraufwand? Nimm doch Castor:
http://castor.exolab.org

Damit definierst du einmalig in einer Konfigurationsdatei, welche Daten eines Objektes (gerne auch ganze Listen und Hierarchien) wichtig sind - und Castor kümmert sich dann darum, diese in eine XML-Datei zu schreiben. Aufwand??

Einlesen ist übrigens genauso einfach: Datei -> Castor -> Objekt(-hierarchie). Aufwand??

Und wenn du dann mal von XML-Dateien auf eine JDBC-Datenbank umsteigen möchtest - dann sag das Castor eben, der kümmert sich um den Rest. Aufwand??

Ich denke mal, ein selbst geschriebenes Programm zum Ausgeben/Einlesen von Semikolonlisten ist da fehleranfälliger, oder? Vor allem hast du da das Problem, dass alte Programmversionen bei einem Wechsel der Eintragsanzahl schnell in Schwierigkeiten können - bei XML kannst du zusätzliche (oder sogar fehlende) Daten wesentlich einfacher ignorieren (kann Castor auch).

Gruß,
Stefan :smile: