[Soap-Python] soaplib document/literal

Dieter Maurer dieter at handshake.de
Fri Dec 3 10:43:06 CET 2010


voloviny wrote at 2010-12-3 10:19 +0100:
> ...
>... and soaplib responds with (document/encoded?):
>
><?xml version='1.0' encoding='utf-8'?>
><senv:Envelope xmlns:wsa="http://schemas.xmlsoap.org/ws/2003/03/addressing"
>xmlns:plink="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
>xmlns:xop="http://www.w3.org/2004/08/xop/include" xmlns:senc="
>http://schemas.xmlsoap.org/soap/encoding/" xmlns:s1="aaa" xmlns:s0="bbb"
>xmlns:s12env="http://www.w3.org/2003/05/soap-envelope/" xmlns:s12enc="
>http://www.w3.org/2003/05/soap-encoding/" xmlns:xs="
>http://www.w3.org/2001/XMLSchema" xmlns:wsdl="
>http://schemas.xmlsoap.org/wsdl/" xmlns:xsi="
>http://www.w3.org/2001/XMLSchema-instance" xmlns:senv="
>http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap="
>http://schemas.xmlsoap.org/wsdl/soap/">
>    <senv:Header/>
>    <senv:Body>
>        <s0:HelloResponse>
>            <s0:HelloResult>
>                <s0:string xsi:type="xs:string">hello</s0:string>
>                <s0:string xsi:type="xs:string">olleh</s0:string>
>            </s0:HelloResult>
>        </s0:HelloResponse>
>    </senv:Body>
></senv:Envelope>

Where do you see "document/encoded"?

I can see one redundant "encoding='utf-8'" (it specifies the default)
and several unused namespace declarations for "encoding" (in some
variety). All of which is harmless (though not strictly necessary).

>called operation (Hello) is specified as:
>
><wsdl:operation name="Hello">
>    <soap:operation soapAction="Hello" style="document"/>
>    <wsdl:input name="Hello">
>        <soap:body use="literal"/>
>    </wsdl:input>
>    <wsdl:output name="HelloResponse">
>        <soap:body use="literal"/>
>    </wsdl:output>
></wsdl:operation>
>
>
>everything is working fine (client accepts response message) ...
>but the question is ... why is soaplib breaking the contract defined in
>wsdl?

Does it?

I see only the use of freedom granted by the various specifications.

For example:

  XML-Names requires that each used namespace prefix has an associated
  definition. But it does not forbid to define unused namespaces.

  XML uses "encoding='utf-8'" as the default but does not forbid
  to specify it explicitely.



--
Dieter



More information about the Soap mailing list