Inteaction between message and binding ( was RE: Issue 4: Use of namespace attribute on soap:body )

Talking to myself...

I wrote up the namespace AII issue from the perspective of the binding.
After sending it I did some more thinking and realised that from the
perspective of the message construct things are a bit more complicated
WRT literal/encoded. Note that the observations below do not bear
directly on issue 4, they are just my musings which I present for
discussion.

Here's the deal;

In the message section[1] our spec states;

	'Multiple part elements are used if the message has multiple
logical units'. 

This implies that if the message has multiple parts you can put multiple
wsdl:part EIIs with element AIIs inside the message definition. The spec
also states;

	'However, if the message contents are sufficiently complex, then
an alternative syntax may be used to specify the composite structure of
the message using the type system directly. In this usage, only one part
may be specified.'

This implies that if you use a wsdl:part EII with a type AII you can
only have one wsdl:part inside the message definition. So <wsdl:part
type='' /> allows only one part, <wsdl:part element='' /> allows one or
more parts.

In the soap:body section[2] our spec states;

	'If use is encoded , then each message part references an
abstract type using the type attribute'

This implies multiple wsdl:part EIIs with type AIIs in the message
definition, in direct contradiction to[1]. It also implies that if you
are using use='encoded' then you MUST use type and not element. The spec
also states;

	'If use is literal , then each part references a concrete schema
definition using either the element or type attribute'

Again this implies multiple wsdl:part EIIs with type AIIs in the message
definition.

So it's a bit of a mess. Another implication is that it is VERY
difficult, if not impossible to actually write an 'astract' message
because you need to know whether you are using literal or encoded in
order to construct the message parts correctly. 

Comments, thoughts, flames etc to the usual address.

Gudge


[1]
http://dev.w3.org/cvsweb/~checkout~/2002/ws/desc/part1/part1.html#IDAWSK
O
[2]
http://dev.w3.org/cvsweb/~checkout~/2002/ws/desc/part2/wsdl12-part2.html
#_soap_body



-----Original Message-----
From: Martin Gudgin [mailto:mgudgin@microsoft.com] 
Sent: 25 June 2002 13:42
To: www-ws-desc@w3.org
Subject: Issue 4: Use of namespace attribute on soap:body



I took an AI at the last telcon to write up Issue 4. Here is that write
up.

The issue is about interaction between the namespace attribute on
soap:body and the targetNamespace of global element declarations in a
schema.

The namespace attribute on the soap:body binding extension element is
only applicable when use='encoded' where it defines the namespace
qualification of the 'wrapper' element for the RPC parameters. The local
name of the wrapper element is defined by the name property of the input
/ output pieces of a portType operation. When use='encoded' the parts
attribute of soap:body refers to parts defined using type='' rather than
element=''. Therefore the interaction does not exist.

Spo I'm not sure there is much of an issue here. We might want to
clarify that if use='literal' then the namespace attribute on soap:body
is not applicable.

Gudge

Received on Wednesday, 26 June 2002 09:28:40 UTC