RE: Issue 17: support for SOAP role attribute

In your proposal below you use the phrase 'mandatory soap:role AII' but
then in the grammer you have role='uri'?

So two things;

1.	Did you intend to say 'role AII' ( unqualified )?

2.	Did you intend to say 'optional'?

FWIW I think the answer to both questions should be 'yes' ;-)

Gudge

-----Original Message-----
From: Jean-Jacques Moreau [mailto:moreau@crf.canon.fr] 
Sent: 26 June 2002 14:04
To: Web Service Description
Subject: Issue 17: support for SOAP role attribute



I took a todo to provide a resolution for issue 17.

Issue

The issue, as raised by Simon Fell [1], is that there is no way to
specify the "role" attribute for a SOAP header block. For the record,
the SOAP "role" [2] AII is used to target a SOAP header block to a
particular SOAP node along the SOAP message path.

Discussion summary

Sanjiva has pointed out [3] that a SOAP role can be specified indirectly
via a WSDL schema, but that this does not work for complex types.

Matt Long has proposed [4] to add a "soap:role" AII to the "soap:header"
EII. Simon Fell has suggested [5] a value of type "anyURI".

Matt Long has later suggested [6] to decouple the role from any specific
header to which it applies, and to list instead in a WSDL file all the
roles supported by a specific binding/endpoint (a SOAP node in the SOAP
terminology).

Personally, I think this is wrong, since a SOAP header block is not
targeted at any random SOAP node, but at a very specific SOAP node. As
far as I understand Matt's proposal, it essentially allows a SOAP client
to pick and choose the role for a header block from the list offered by
a server. So, for example, a client could choose to target a caching
block to a ".../securityManager" role instead of ".../cacheManager"
role, assuming the server supports both roles.

Proposal

I suggest that we go with Matt's original proposal [4] as amended by
Simon [5]. I.e. that we introduce a mandatory soap:role AII on each
soap:header.

Changes to the spec

Example 1

Update the example

* <soap:header message="tns:SubscribeToQuotes" part="subscribeheader"
use="literal"
role="http://www.w3.org/2002/soap-envelope/role/ultimateReceiver"/>

Section 2.2

Update the grammar for <input> and <output>

* <soap:header message="qname" part="nmtoken" use="literal|encoded"
                                        encodingStyle="uri-list"?
namespace="uri"
                                        role="uri"?>*
* <soap:header message="qname" part="nmtoken" use="literal|encoded"
                                        encodingStyle="uri-list"?
namespace="uri"
                                        role="uri"?>*

Section 2.7

Update the grammar as above, for both <input> and <output>

Insert the text below between the penultimate and ultimate paragraph for
that section.

* The soap:role attribute information item identifies the SOAP role to
which a SOAP header block is targeted. The soap:role attribute
information item has:
   - A [local name] of role.
   - A [namespace name] of
   - A [specified] property with a value of "true".
The type of the role attribute information item is anyURI in the
namespace named "http://www.w3.org/2001/XMLSchema". The value of the
role attribute information item is a URI that names a role that a SOAP
node can assume. Omitting the SOAP role attribute information item is
equivalent to indicating value of
"http://www.w3.org/2001/12/soap-envelope/role/ultimateReceiver".
An empty value is equivalent to omitting the attribute completely, i.e.
targeting the SOAP header block to an ultimate SOAP receiver.

Jean-Jacques.

[1] http://www.w3.org/2002/ws/desc/2/06/issues.html#x17
[2]
http://www.w3.org/2000/xp/Group/1/10/11/soap12-part1.html#targettingbloc
ks

[3] http://groups.yahoo.com/group/wsdl/message/641
[4] http://groups.yahoo.com/group/wsdl/message/643
[5] http://groups.yahoo.com/group/wsdl/message/645
[6] http://groups.yahoo.com/group/wsdl/message/646

Received on Wednesday, 26 June 2002 09:35:20 UTC