- From: Jean-Jacques Moreau <moreau@crf.canon.fr>
- Date: Wed, 26 Jun 2002 15:04:10 +0200
- To: Web Service Description <www-ws-desc@w3.org>
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#targettingblocks [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:27:31 UTC