Moin moin,
bitte helft mir doch bei meinem Problem.
Situation:
Ein Codeschnippsel von mir speichert Daten als
XML, ein validiertes Schema hab ich auch erstellt.
Delphi-Quellcode:
...
var xmldoc : TXMLDocument;
begin
xmldoc := TXMLDocument.Create(nil);
xmldoc.Active:=True;
xmldoc.Encoding:='ISO-8859-1';
xmldoc.Options := [doNodeAutoCreate, doNodeAutoIndent, doAttrNull];
xmldoc.ParseOptions := [poResolveExternals, poValidateOnParse];
root_node := xmldoc.AddChild('blablubb');
xmldoc.DocumentElement.Attributes['xmlns:xsi'] := 'http://www.w3.org/2001/XMLSchema-instance';
xmldoc.DocumentElement.Attributes['xsi:noNamespaceSchemaLocation'] := 'http://www.blablubb.com/blablubb/schema.xsd';
...
...
xmldoc.SaveToFile(file_name_str);
...
end;
Problem:
Eigentlich ist alles prima, die
XML-Datei wird wie gewünscht geschrieben, allerdings hat die Codezeile
xmldoc.DocumentElement.Attributes['xsi:noNamespaceSchemaLocation'] := 'http://www.blablubb.com/blablubb/schema.xsd';
nicht die erwartete Wirkung. In der
XML-Datei steht folgendes:
<blablubb xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" noNamespaceSchemaLocation="http://www.blablubb.com/blablubb/schema.xsd">
Hier fehlt mir eindeutig das "xsi:" vor dem "noNamespaceSchemaLocation".
Ich möchte darauf wetten, daß dieses Problem Euch bekannt ist. Leider konnte mir google nicht weiterhelfen.
Bitte helft mir doch auf die Sprünge, ich stehe kurz davor, das "xsi" klassisch per file i/o einzufügen.
Viele Grüße,
Gnorks