- From: Mark Nottingham <mnot@mnot.net>
- Date: Wed, 20 Apr 2005 13:58:45 -0700
- To: public-ws-addressing@w3.org
This is the text the WG agreed to today; ---8<--- 5. WS-Addressing in WSDL Bindings This specification provides mechanisms for indicating in a WSDL 1.1 or WSDL 2.0 description that the endpoint conforms to the WS-Addressing specification. 5.1 Indicating use of WS-Addressing with the wsaws:UsingAddressing Extension Element One means of doing this is using the <wsaws:UsingAddressing> extensibility element. [ formal spec of extensibility element ] The wsdl:required attribute MAY be used to indicate whether WS-Addressing Message Addressing Properties are required in messages received from service requesters. When wsdl:required on <wsaws:UsingAddressing> is set to "true", messages exchanged with the endpoint MUST contain WS-Addressing Message Addressing Properties. When wsdl:required is set to "false", the endpoint MUST accept input messages with or without WS-Addressing header blocks, and MAY generate output messages containing WS-Addressing headers; if WS-Addressing header blocks are not present in an input message, and a SOAP binding is used, WS-Addressing header blocks encoded in the corresponding output message MUST NOT be required to be understood with soap:mustUnderstand. When used in a WSDL service description, the <wsaws:UsingAddressing> element SHOULD appear in the WSDL binding component of the service endpoint. The WS-Addressing extensibility marker MAY appear within any of the elements of a WSDL binding: <wsdl:binding> with semantics defined by the usual scoping rules. The <wsaws:UsingAddressing> element MAY be instead included in the <wsdl:endpoint> (or <wsdl:port> in the case of WSDL 1.1) when an endpoint intends to indicate compliance with WS-Addressing when using an already defined WSDL binding. The inclusion of the <wsaws:UsingAddressing> element indicates that the applicable WS-Addressing specifications are supported within the constraints of the WSDL binding being used. That is, uses of the WS-Addressing specifications that may violate or are inconsistent with the semantics of the endpoint's WSDL binding are not supported unless explicitly stated by some other mechanism. Specifically, when included in a SOAP binding, the <wsaws:UsingAddressing> marker identifies the use of Web Services Addressing 1.0 bound to SOAP as defined by [@@link to SOAP Binding spec@@]. In the case when the WSDL SOAP/HTTP synchronous binding for request response operations the presence of the <wsaws:UsingAddressing> element in the binding or endpoint (port) components of the endpoint description does not change the binding semantics with respect to the requirement that response message be sent over the same HTTP channel over which the request was receive. This implies in particular that the wsa:replyTo header in the request MUST NOT contain an address with a value different from the anonymous IRI when the SOAP/HTTP binding is in use. WSDL 1.1 example: <binding name="StockQuoteSoapBinding" type="tns:StockQuotePortType"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <wsaw:UsingAddressing wsdl:required="true"/> <operation name="GetLastTradePrice"> <soap:operation soapAction="http://example.com/GetLastTradePrice"/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> WSDL 2.0 example: <binding name="reservationSOAPBinding" interface="tns:reservationInterface" type="http://www.w3.org/2004/08/wsdl/soap12" wsoap:protocol="http://www.w3.org/2003/05/soap/bindings/HTTP"> <wsaw:UsingAddressing wsdl:required="true"/> <operation ref="tns:opCheckAvailability" wsoap:mep="http://www.w3.org/2003/05/soap/mep/request-response"/> <fault ref="tns:invalidDataFault" wsoap:code="soap:Sender"/> </binding> 5.2 Indicating use of WS-Addressing with wsoap:module In WSDL 2.0, the wsoap:module construct may be used to declare the use of WS-Addressing 1.0 for the SOAP binding. The meaning of wsa:UsingAddressing is semantically equivalent to such a wsoap:module declaration in this case. Note that this module is not meaningful when used on WSDL constructs where wsaws:UsingAddressing is not allowed. [ update to include specific module URIs] [ WSDL 2.0 example ] --->8--- -- Mark Nottingham http://www.mnot.net/
Received on Wednesday, 20 April 2005 20:58:51 UTC