Ich habe folgenden Code für das Erzeugen eines neuen
XMl-Dokumentes:
Delphi-Quellcode:
procedure TForm1.Neu1Click(Sender: TObject);
var
NewXMLDoc : IXMLDocument;
Prolog : TStrings;
begin
NewXMLDoc := TXMLDocument.Create(self);
Prolog := TStringList.Create;
Prolog.Insert(0,'
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>');
Prolog.Insert(1,'
<?xml-stylesheet href="style.xsl" type="text/xsl"?>');
Prolog.Insert(2,'
<!DOCTYPE SQLDatei [');
Prolog.Insert(3, '
');
Prolog.Insert(4, #9 + '
<!ELEMENT SQLDatei (Script+)>');
Prolog.Insert(5, #9 + '
');
Prolog.Insert(6, #9 + '
<!ELEMENT Script (Beschreibung,Befehl)>');
Prolog.Insert(7, #9 + '
<!ELEMENT Beschreibung (#PCDATA)>');
Prolog.Insert(8, #9 + '
<!ELEMENT Befehl (#PCDATA)>');
Prolog.Insert(9, #9 + '
<!ATTLIST Script');
Prolog.Insert(10, #9 + #9 + '
DB-Typ (SQL-Sever | Oracle) #REQUIRED');
Prolog.Insert(11, #9 + #9 + '
Nummer CDATA #REQUIRED');
Prolog.Insert(12, #9 + #9 + '
Author CDATA #REQUIRED');
Prolog.Insert(13, #9 + '
>');
Prolog.Insert(14, #9 + '
]>');
Prolog.Insert(15,'
<SQLDatei>');
Prolog.Insert(16, #9 + '
<Script DB-Typ="SQL-Server" Nummer="1" Author="CD">');
Prolog.Insert(17, #9 + #9 + '
<Beschreibung>Neue Beschreibung eintragen</Beschreibung>');
Prolog.Insert(18, #9 + #9 + '
<Befehl>Neues SQL-Script eintragen</Befehl>');
Prolog.Insert(19, #9 + '
</Script>' );
Prolog.Insert(20, '
</SQLDatei>');
NewXMLDoc.XML := Prolog;
NewXMLDoc.Active := true;
SaveDialog1.Filter := '
XML-Document (*.xml)|*.XML';
if SaveDialog1.Execute
then
NewXMLDoc.FileName := SaveDialog1.FileName;
NewXMLDoc.SaveToFile(NewXMLDoc.FileName + '
.xml');
XMLDoc.FileName := NewXMLDoc.FileName;
XMLDoc.Active := true;
Lesen(0);
end;
Leider bekomme ich immer an der Stelle XMLDoc.Active := true die folgende Fehlermeldung:
Im Projekt ist eine
Exception der Klasse EDOMParseError aufgetreten. Meldung:'System error: -2146697210.
Linie:0
'. Prosess wurde angehalten.
Die Funktion Lesen liest den Knoten mit Index 0 des
XML-Dokumentes.
Das
XML-Dokument wurde aber erstellt und ich kann mir es anzeigen lassen ohne das Fehlermeldungen auftreten. Hat von euch vieleicht jemand eine Idee?