ich möchter eine XML Datei schreiben die einen SOAP Envelope enthält.
Mann könnte eine XML Datei auch einfach über einen String-Zusammenbau erzeugen ist aber bestimmt nicht state of the art *g*
Mit dem XML-Dokument .ADDChild und .SetAttributeNS kann man auf die schnelle auch XML-Dateien erzeugen.
Jetzt kommt das Problem: Mit folgenden Quellcodezeilen erhalte ich unten fett dargestellt den Fehler in der XML Datei. Das Attribut wird in dem Quellcode gar nicht erwähnt! Es sollen nur die zwei letzteren Attribute in der XML DAtei auftauchen.
Das ganze versende ich nacher über die INDY Komponenten idHTTP!
Muss man noch bestimmte Einstellungen vornehmen, wenn man einen SOAP Brief per XMLDocument erstellen möchte?
Quellcode:
var
txml_soap,
txml_a,
txml_b,
txml_c,
txml_d: IXMLNode;
I: Integer; s:string;
begin
txml_soap:=axmldocument.AddChild('soapenv:Envelope');
txml_soap.SetAttributeNS('xmlns:soapenc','soapenv:Envelope','http://schemas.xmlsoap.org/soap/encoding/');
txml_soap.SetAttributeNS('xmlns:soapenv','soapenv:Envelope','http://schemas.xmlsoap.org/soap/envelope/');
txml_soap.SetAttributeNS('xmlns:urn','soapenv:Envelope','urn:BestandsabfrageApotheke');
txml_soap.SetAttributeNS('xmlns:xsd','soapenv:Envelope','http://www.w3.org/2001/XMLSchema');
txml_soap.SetAttributeNS('xmlns:xsi','soapenv:Envelope','http://www.w3.org/2001/XMLSchema-instance');
txml_b:=txml_soap.AddChild('soapenv:Header');
txml_c:=txml_b.AddChild('wsse:Security');
txml_c.SetAttributeNS('soapenvmust:Understand','wsse:Security','1');
txml_c.SetAttributeNS('xmlns:wsse','wsse:Security','http://docs.oasis-open.org/wss/2004/01/oasis-200401-wsus-wsuuusecurity-secext-1.0.xsd');
Resultat:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:urn="urn:BestandsabfrageApotheke"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header>
<wsse:Security
xmlns:soapenvmust="wsse:Security"
soapenvmust:Understand="1"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wsus-wsuuusecurity-secext-1.0.xsd"/>
</soapenv:Header>
</soapenv:Envelope>
Danke im vorraus!