First, .NET is making a a document/literal style encoding -- so you have
to setup your SOAP server to handle that -- I'm not sure of ext/soap
handles this properly yet.
Secondly, the .NET client is using the href XML notation. I'm not sure
if the ext/soap xml parser will handle this or not. Generally, I don't
like the references scattered around my XML.
Al
On Wed, 2004-11-24 at 15:03 +0100, Danne.Lundqvist@corp.vodafone.se
wrote:
> Hi,
>
> I have been trying to get .NET talking to a SOAP server I have written in
> php. I have tested the same server with WebMethods and have no problem.
> When using .NET as a client (mostly autogenerated) I have received an
> error "Looks like we got "Body" with several functions call".
>
> Looking at the code in soap.c the code below is producing the error. The
> code below only allows one child node in the body and thus assumes this
> to be the function call.
>
> .NET on the other hand sends parameters outside of the actual function
> call. Is this correct and is ext/soap going to support this behaviour or is
> it
> .NET who is acting weird? Any ideas on this?
>
> Regards
> Danne Lundqvist
>
>
> -------- START soap.c --------
> func = NULL;
> trav = body->children;
> while (trav != NULL) {
> if (trav->type == XML_ELEMENT_NODE) {
> if (func != NULL) {
> soap_server_fault("Client", "looks like we got
> \"Body\" with several functions call", NULL, NULL, NULL TSRMLS_CC);
> }
> func = trav;
> }
> trav = trav->next;
> }
> -------- END soap.c --------
>
>
>
> -------- START Soap msg from .NET --------
>
> <?xml version="1.0" encoding="utf-8"?>
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
> xmlns:tns="http://spock/xxx/scooset"
> xmlns:types="http://spock/xxx/scooset/encodedTypes"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>
> <soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
> <q1:bassCall xmlns:q1="http://spock/xxx/types/scooset">
> <system xsi:type="xsd:string">TestSystem</system>
> <function xsi:type="xsd:string">TestFunction</function>
> <parameter href="#id1" />
> </q1:bassCall>
>
> <soapenc:Array id="id1" soapenc:arrayType="tns:Item[1]">
> <Item href="#id2" />
> </soapenc:Array>
>
> <tns:Item id="id2" xsi:type="tns:Item">
> <key xsi:type="xsd:string">ABCabc123</key>
> <val xsi:type="xsd:string">123456</val>
> </tns:Item>
>
> </soap:Body>
> </soap:Envelope>
>
> -------- END Soap msg from .NET --------
>
>
>
> ______________________________________
> OBS! Vi har andrat vara e-postadresser, se avsandaradressen ovan. V.g.
> uppdatera dina eventuella sandlistor.
> N.B. Our e-mail addresses are changed (see above sender address). Please
> change any sendlists accordingly. Thank you.
> ______________________________________
> This message and any files or documents attached are confidential and may
> also be legally privileged or protected by other legal rules. It is intended
> only for the individual or entity named. If you are not the named addressee
> or you have received this email in error, please inform the sender
> immediately, delete it from your system and do not copy or disclose it or
> its contents or use it for any purpose.
> Thank you.
>
> Please also note that transmission cannot be guaranteed to be secure or
> error-free.
>
>