Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi Objekte in XML speichern (https://www.delphipraxis.net/67754-objekte-xml-speichern.html)

EConvertError 4. Mai 2006 11:57

Re: Objekte in XML speichern
 
Danke für Alles!

@mschaefer:
In der Tat habe ich schon einmal daran gedacht mir selbst so einen kleinen SAX-Parser (nach dem Muster des XMLReader in .net) zu schreiben. Da hätte ich mir solche schlanken XML-Komponenten angesehen.
Kann leicht sein, dass ich das noch tun werde, wobei diese Aufgabe sicher nicht trivial ist. Selbst schreiben deshalb, weil ich entweder einen "richtigen" Parser, wie MSXML verwenden will, oder ganz auf Fremdkomponenten verzichten will. Auf jeden Fall reizt mich das sehr...mal sehen ob mal was draus wird... :mrgreen:

@marabu:
Ich glaube, dass ich jetzt genug Informationen habe, um selbst eine Entscheidung zu fällen. Dass ich Deserialisierung und Serialisierung auf die gleiche Weise mache, ist meiner Meinung nach logisch. Um das Henne-Ei-Problem zu lösen, überlade ich einfach den Konstruktor.

Mir kommt es nicht unbedingt auf weniger Lines-Of-Code an, sondern auf die eleganteste Lösung. :mrgreen:

Ein letztes Problem bleibt allerdings noch für mich:
Ist es eine gute Idee in einem Projekt sowohl SAX aus MSXML als auch IXMLDocument (DOM) aus der Unit XMLDoc zu verwenden (jeweils für verschiedene Zwecke natürlich)?
Delphi-Quellcode:
var doc: IXMLDocument
begin
  doc := NewXMLDocument;
end;
Oder habe ich dann sozusagen doppelten Code und ich sollte besser direkt die MSXML-DOM Implementation verwenden?
Weil das TXMLDocument ja auch MSXML unterstützt, aber ich bei IXMLDocument nicht sicher bin, welche Implementation verwendet wird. Und für nicht visuelle Komponenten empfiehlt Borland ja IXMLDocument statt TXMLDocument (gab mal so einen Artikel auf CodeCentral).

Ansonsten betrachte ich das Problem als erledigt. :thumb:

Vielen Dank,
Andreas

marabu 4. Mai 2006 12:18

Re: Objekte in XML speichern
 
Hallo Andreas,

ich würde versuchen in einem Projekt entweder mit MSXML oder mit MSXML2 zu arbeiten. Den von dir erwähnten Artikel kenne ich jetzt nicht, aber der wesentliche Vorteil der Borland XML Implementierung ist die Unabhängigkeit vom DOM Vendor MS.

Wenn du dich an der Implementierung eines XML-Parsers versuchen willst, dann wäre eine passive Komponente das richtige für dich. Der Vorteil, den ich auch in einem Kundenprojekt genutzt habe, ist die Stop-And-Go Fähigkeit - ein SAX-Parser kennt keine Bremse.

marabu

EConvertError 4. Mai 2006 18:11

Re: Objekte in XML speichern
 
Vielen Dank!

Ok, dann werde ich versuchen, die XML-Implementationen in einem Projekt nicht zu mischen. Ich finde den Artikel auf CodeCentral nicht mehr, aber es geht darin darum, dass ein während der Laufzeit dynamisch erzeugtes TXMLDocument zu AccessViolations führt. Laut Borland liegt die Lösung darin, das IXMLDocument Interface zu verwenden, was eigentlich auch super funktioniert.

Ja, ich denke, dass ich mich an einem XML-Parser versuchen will. Er soll so ähnlich wie SAX den Streaming-Ansatz verwenden, aber nicht über Events arbeiten, sondern über das Pull-Modell. D.h. ähnlich wie in einem TFileStream möchte ich von einem XML-Element zu nächsten navivigieren. Damit wäre auch die Stop-And-Go Fähigkeit dabei.
Hoffentlich wird was draus...

Somit betrachte ich meine Fragen als beantwortet und versuche mich an dem Parser. Bei Fragen eröffne ich einen neuen Thread, da das den Rahmen dieses Threads wohl sprengen würde.

Ich bedanke mich hiermit noch einmal herzlich,
Andreas


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:25 Uhr.
Seite 4 von 4   « Erste     234   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz