i021 resolution

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