Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi Präfixe / Namespaces auslassen (https://www.delphipraxis.net/187370-praefixe-namespaces-auslassen.html)

Yaso 23. Nov 2015 16:09

Präfixe / Namespaces auslassen
 
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>


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:15 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz