Ich soll ein
Xml Dokument erstellen, welches verschiedene Namespaces enthält, und manchmal auch ohne.
Das Problem ist, dass wenn ich den folgenden Code habe, mir das env Präfix automatisch generiert wird, obwohl die Option "doAutoPrefix" nicht gesetzt ist.
Habe ich da was übersehen?
Habe im Internet leider nichts gefunden.
Hier ein Kleines Beispiel:
Delphi-Quellcode:
unit Unit14;
interface
uses
Winapi.Windows,
Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
Vcl.Graphics,
Vcl.Controls,
Vcl.Forms,
Vcl.Dialogs,
Vcl.StdCtrls;
type
TForm14 =
class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form14: TForm14;
implementation
uses
Xml.XMLIntf,
Xml.XMLDoc;
{$R *.dfm}
procedure TForm14.Button1Click(Sender: TObject);
var
Xml : IXMLDocument;
TempNode : IXMLNode;
begin
Xml := NewXMLDocument();
Xml.Options := [doNodeAutoCreate, doAttrNull, doNodeAutoIndent]; doAutoPrefix
Xml.Encoding := '
UTF-8';
Xml.Active := True;
TempNode :=
Xml.AddChild('
env:Envelope');
TempNode.Attributes['
xmlns:env'] := '
http://schemas.xmlsoap.org/soap/envelope';
TempNode := TempNode.AddChild('
env:Header');
TempNode := TempNode.AddChild('
KeinPrefix');
TempNode.Text := '
Node soll ohne Prefex sein';
Xml.SaveToFile('
C:\Temp\Xml.txt');
end;
end.
Ich will dass das
XML folgendermassen aussieht:
Code:
<?
xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/
soap/envelope">
<env:Header>
<KeinPrefix>Node soll ohne Prefex sein</KeinPrefix>
</env:Header>
</env:Envelope>
statt so:
Code:
<?
xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/
soap/envelope">
<env:Header>
<env:KeinPrefix>Node soll ohne Prefex sein</env:KeinPrefix>
</env:Header>
</env:Envelope>