Per my action item, here are two concrete proposals to address this issue in Section 3.1.  The first generalizes the UsingAddressing element slightly to allow its reuse as a policy assertion (or any other framework that is based on QNamed elements):

3.1 UsingAddressing Extension Element

WS-Addressing defines an empty global element, wsaw:UsingAddressing, that may be used to indicate that an endpoint conforms to the WS-Addressing specification in description languages or policy frameworks that use namespaced XML elements to indicate capabilities or requirements.

 

The wsaw:UsingAddressing element MAY appear as an extension element in a WSDL description. In this case, the wsdl:required attribute MAY be used to indicate whether WS-Addressing Message Addressing Properties are required in messages received from service requesters. Table 3-1 outlines the requirements on messages sent from an endpoint based on the contents of any preceding input message and how the use of addressing is indicated in the WSDL.

Table 3-1. MAPs Present in output message

MAPs in Input message

UsingAddressing Present

UsingAddressing Not Present

 

wsdl:required="true"

wsdl:required="false"

 

Yes, using SOAP headers with a soap:mustUnderstand value of "true"

REQUIRED

REQUIRED

REQUIRED or fault

 

Yes, using another protocol or using SOAP headers with a soap:mustUnderstand value of "false"

REQUIRED

REQUIRED

OPTIONAL

 

No

Fault

OPTIONAL. If using SOAP, MAP headers MUST NOT have a soap:mustUnderstand attribute with a value of "true"

OPTIONAL. If using SOAP, MAP headers MUST NOT have a soap:mustUnderstand attribute with a value of "true"

 

 

If WS-A is engaged, use of the message addressing properties MUST be fully compliant with this specification; in particular, senders MUST use all message addressing properties mandated by the Web Services Addressing 1.0 - Core[WS-Addressing-Core], applicable WS-Addressing protocol bindings (e.g. Web Services Addressing 1.0 - SOAP Binding[WS-Addressing-SOAP]), and this specification, and MUST follow all applicable WS-Addressing normative requirements.

The wsaw:UsingAddressing extension element SHOULD appear as a child of the wsdl:binding element. Alternatively, the wsaw:UsingAddressing extension element MAY instead be included as a child of the wsdl20:endpoint (or wsdl11:port) when an endpoint intends to indicate compliance with WS-Addressing for a specific endpoint only.

The inclusion of the wsaw:UsingAddressing extension 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 wsaw:UsingAddressing extension element identifies the use of Web Services Addressing 1.0 bound to SOAP as defined by Web Services Addressing 1.0 - SOAP Binding[WS-Addressing-SOAP].

The presence of the wsaw:UsingAddressing extension element in the binding or endpoint (port) components of the endpoint description does not change the semantics of the binding. E.g. in the case of the WSDL SOAP/HTTP synchronous binding for request-response operations, the presence of the wsaw:UsingAddressing extension element does not change the requirement that the response message be sent over the same HTTP channel over which the request was received. In this case, the wsa:replyTo header in the request MUST NOT contain an address with a value different from the anonymous URI.

When the wsaw:UsingAddressing element is associated with WSDL constructs through means other than direct use as a WSDL extension (e.g. through a policy framework), the meaning of such association is semantically equivalent to the use of wsaw:UsingAddressing as a WSDL extension. Note that the association of wsaw:UsingAddressing to WSDL constructs where the wsaw:UsingAddressing WSDL extension element is not allowed is not meaningful.

 

Example 3-1. Indicating use of WS-Addressing using wsaw:UsingAddressing in WSDL 2.0

<binding name="reservationSOAPBinding"

    interface="tns:reservationInterface"

    type="http://www.w3.org/2005/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>

Example 3-2. Indicating use of WS-Addressing using wsaw:UsingAddressing in WSDL 1.1

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

3.1.1 WSDL 2.0 Component Model Changes

Use of WS-Addressing adds the following REQUIRED properties to the WSDL 2.0 component model:

·         A property of the binding or endpoint named {addressing required} of type xs:boolean. The property value is the value of the wsdl:required attribute information item on the wsaw:UsingAddressing extension element, if present; otherwise "false".

 

 

The second proposal is less general, and just specifically blesses the reuse in policy assertions (although still in a general way):

 

3.1 UsingAddressing WSDL Extension Element

3.3 UsingAddressing Assertion

The wsaw:UsingAddressing element may also be used as a policy assertion in a policy framework that expresses assertions as namespaced elements.  The meaning of such an assertion is semantically equivalent to the use of wsaw:UsingAddressing as a WSDL extension.

 

When the wsaw:UsingAddressing assertion is associated with WSDL constructs, the meaning of such association is semantically equivalent to the use of wsaw:UsingAddressing as a WSDL extension. Note that the association of wsaw:UsingAddressing to WSDL constructs where the wsaw:UsingAddressing WSDL extension element is not allowed is not meaningful.