Title: Message
Tom,
 
Thanks a bunch for the reply. I appreciate the help in my understanding of the WSDL specification.
Things start to be a little bit clearer for me now.
 
Thomas
-----Original Message-----
From: Tom Jordahl [mailto:[EMAIL PROTECTED]]
Sent: Thursday, September 19, 2002 4:47 PM
To: '[EMAIL PROTECTED]'
Subject: RE: document-literal with part name using type attribute

 
Thomas,
 
I believe you have stumbled upon a problem with the WSDL 1.1 specification.  We are trying to address this in the W3C WSDL working group for the next revision of the spec.
 
In general, it would avoid this style of WSDL if at all possible.  I do not think Axis will do the right thing with this, and it general your feelings about the soap-body actually having a type are correct, it is broken.
 
What looks to be a emerging 'common practice', mainly because .NET does it, it to use the wrapped mode of document/literal which follow these rules:
 - There is a single part
 - the part is defined using element
 - There are no attribute in the Schema for the element
 - the element QName is the same as the operation QName
 
I hope this helps a little.  I have been working with WSDL for a long time now, and my comprehension of it details varies with the time of day.  :-)
 
--
Tom Jordahl
Macromedia Server Development
-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
Sent: Thursday, September 12, 2002 12:41 AM
To: [EMAIL PROTECTED]
Subject: document-literal with part name using type attribute

I know that all you guys are probably quite busy between the RC1 and soon to come GA.
I sent the following question (in an old existing thread) in the axis-dev list and I did not get any reply. I was wondering if one of you could help understand one specific area of the WSDL 1.1 specification.

The question is related to the document-literal with message part referencing a concrete schema definition using the type attribute (and not the element one).
Here is the corresponding extract from the WSDL1.1 specification (end of section 3.5):

If use is literal, then each part references a concrete schema definition using either the element or type attribute. In the first case, the element referenced by the part will appear directly under the Body element (for document style bindings) or under an accessor element named after the message part (in rpc style). In the second, the type referenced by the part becomes the schema type of the enclosing element (Body for document style or part accessor element for rpc style). For an example that illustrates defining the contents of a composite Body using a type, see section 2.3.1. The value of the encodingStyle attribute MAY be used when the use is literal to indicate that the concrete format was derived using a particular encoding (such as the SOAP encoding), but that only the specified variation is supported ("writer makes right").

What I am not sure to understand is "In the second, the type referenced by the part becomes the schema type of the enclosing element (Body for document style ....".

First, it seems weird to me, from a pure XML point of view, that I the soap:body element can become of any type (but I am far from being fluent in XML Schema). And in the case this is completely valid, what does it mean if the message has multiple parts (either all of them using the type attribute or a mix of type and element attribute)? Can the soap:body be of multiple different type? What about potential conflict?

When you look at some web services out there, most document style have only one part, and if there is multiple part the element attribute is used (instead of type). I'd like to understand if this a de-facto standard or if I missed something somewhere specifying that it is supposed to be that way.

Any help will be appreciated.

Thomas

Reply via email to