- From: Martin Gudgin <mgudgin@microsoft.com>
- Date: Wed, 26 Jun 2002 06:34:48 -0700
- To: "Jean-Jacques Moreau" <moreau@crf.canon.fr>, "Web Service Description" <www-ws-desc@w3.org>
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