The WSDL 1.1 spec has a bunch of errors in it. (It's not a formal standard, after all.) The WS-I Basic Profile clarifies these errors. See section 4.4 [1] for clarifications related to messages and parts. To whit:

R2201 A document-literal binding in a DESCRIPTION MUST, in each of its soapbind:body element(s), have at most one part listed in the parts attribute, if the parts attribute is specified.

Zero parts is permitted.

Assuming that your getAllSectors operation is defined as document/literal, Axis should not insert the <getAllSectors xmlns="urn: remote.ws.mycompany.org"/> element into the SOAP Body. The Body should be empty. Axis should insert the method name element only if the operation is defined as rpc style.

[1] http://www.ws-i.org/Profiles/BasicProfile-1.1-2004-08-24.html#WSDLMSGS

Anne

On 3/16/06, Lars Torunski <[EMAIL PROTECTED]> wrote:
I got stuck in a discussion between two consultants if Axis 1.3 fulfills the WSDL 1.1 specification for document/literal correctly.

Consultant 1:
Taken from http://www.w3.org/TR/wsdl#_messages (2.3 Messages) the message is defined by "Messages consist of one or more logical parts.".

Consultant 2:
On the other hand the WSDL schema definition in http://www.w3.org/TR/wsdl#A4.1 defines "wsdl:part" with <element ref="wsdl:part" minOccurs="0" maxOccurs="unbounded"/>

Consultant 1:
This maybe contradictory, but this is because WSDL may use either by "rpc" or "document" styles. Per RPC, of course, <message> may be without any <part>. Unfortunately, this is not the case with "document" style. For "document" style only the <message> <part> are sent. No other leading information is used. Thus, the inner message-parts in this case are must. One MUST NOT discard message-parts when "document" style is used.

Me:
We have a message "getAllSectors" defined as <wsdl:message name="getAllSectorsRequest">  </wsdl:message> Thus, no <part> is defined. Axis 1.3 create the following http request:

<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd=" http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><getAllSectors xmlns="urn: remote.ws.mycompany.org"/></soapenv:Body></soapenv:Envelope>

What do you think? Is there a problem in our wsdl file or is this a bug in Axis 1.3 by using document/literal?




Reply via email to