Einzelnen Beitrag anzeigen

Yaso

Registriert seit: 10. Jun 2015
6 Beiträge
 
Delphi XE6 Professional
 
#1

Präfixe / Namespaces auslassen

  Alt 23. Nov 2015, 16:09
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>
  Mit Zitat antworten Zitat