So, ich habe mich jetzt etwas mit
SAX auseinandergesetzt.
Habe ich folgendes richtig verstanden:
Wenn ich
SAX verwende, schreibe ich in ein
XML-Dokument so wie z.B. in einen Stream. Das heißt, um meine untergeordneten Objekte in das
XML-Dokument zu speichern, übergebe ich der Methode meinen MXXMLWriter und mein Objekt schreibt sich an die aktuelle Stelle im MXXMLWriter.
Wenn ich also einen genauen ParentNode angeben will, muss ich
DOM verwenden. Selbiges gilt natürlich auch für das Lesen. Das bringt mich zum Überlegen, ob ich nicht doch
DOM verwenden sollte.
Außerdem habe ich ein Problem mit dem MXXMLWriter:
Der unterstützt von Haus aus die Methoden zum Schreiben des
XML-Dokuments nicht. Aber man kann die Handler-Interfaces zum MXXMLWriter-Objekt casten. Das Codebeispiel aus der
MSDN Library ist aber leider in Visual Basic und dieser Sprache bin ich leider nicht mächtig.
Dort werden die Interfaces IVBSAXContentHandler, IVBSAXDTDHandler, IVBSAXLexicalHandler, IVBSAXDeclHandler, IVBSAXErrorHandler dem MXXMLWriter zugewiesen.
Code:
Set cnth = wrt 'Dim cnth As IVBSAXContentHandler
Wenn ich das in Delphi versuche, erhalte ich die
Exception 'Schnittstelle nicht unterstützt'. Ich habe auch die Interfaces ISAXContentHandler, etc. (also ohne VB probiert) - ohne Erfolg.
Andreas
Andreas N.