RE: Issue 17: support for SOAP role attribute

Also suggest you merge the following two sentences;

'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.'

To read

'A SOAP role attribute information item that is either absent or has an
empty value is equivalent to indicating a value of
"http://www.w3.org/2001/12/soap-envelope/role/ultimateReceiver" i.e.
targeting the SOAP header block to an ultimate SOAP receiver.'

Hope this helps

Gudge

-----Original Message-----
From: Martin Gudgin 
Sent: 26 June 2002 14:35
To: 'Jean-Jacques Moreau'; Web Service Description
Subject: 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:37:36 UTC