This specification supports a
mechanism for indicating, in a WSDL description, that the endpoint conforms to
the WS-Addressing specification. That mechanism uses WS-Policy Framework [WS Policy 1.5 - Framework].
The mechanism for indicating
that a binding or endpoint conforms to the WS-Addressing specification is
through the use of the Web Services Policy - Framework [WS Policy 1.5 - Framework]
and Web Services Policy - Attachment [WS Policy 1.5 - Attachment]
specifications. This specification defines three policy assertions.
The wsam:Addressing policy assertion
applies to the endpoint policy subject.
For WSDL 1.1, these assertions
may be attached to wsdl11:port
or wsdl11:binding
. For WSDL 2.0, they may be attached to wsdl20:endpoint
or wsdl20:binding
.
A policy
expression containing the wsam:Addressing
policy assertion MUST NOT be attached to a wsdl:portType
or wsdl20:interface. The wsam:Addressing
policy assertion specifies a concrete behavior whereas the wsdl:portType
or wsdl20:interface is an abstract construct.
The wsam:Addressing policy assertion
is a nested policy container assertion. The meaning of this assertion, when
present in a policy alternative, is that WS-Addressing is required to
communicate with the subject. The wsam:Addressing
assertion indicates that there are no restrictions on the use
of WS-Addressing unless otherwise qualified by assertions in its nested policy
expression. In order to
indicate that the subject supports WS-Addressing but does not require its use,
an additional policy alternative should be provided which does not contain this
assertion. This may be done in WS-Policy compact form by adding the attribute wsp:Optional="true" to
the wsam:Addressing assertion.
The wsam:AnonymousResponses element MAY be used as a policy
assertion nested within the wsam:Addressing assertion
in accordance with the rules laid down by WS-Policy Framework 1.5 section
4.3.2.
The appearance of this element
within a policy alternativethe wsam:Addressing policy assertion
indicates that the endpoint expresses explicitrequires support
for request messages with to use response
endpoint EPRs that contain the anonymous URI
("http://www.w3.org/2005/08/addressing/anonymous") as the value of
[address]. In other words, the endpoint guarantees support forrequires
the use of anonymous responses.
The absence of the
wsam:AnonymousResponses policy assertion within a policy alternative does not
indicate that the endpoint will not accept request messages with response
endpoint EPRs that contain the anonymous URI as an address; it simply indicates
the lack of any affirmation of support for anonymous URIs.
The None URI
("http://www.w3.org/2005/08/addressing/none") may appear as the value
of [address] in place of the anonymous URI; this value MUST be accepted.
The wsam:NonAnonymousResponses
element MAY be used as a policy assertion nested within the Addressing
assertion in accordance with the rules laid down by WS-Policy Framework 1.5
section 4.3.2. The wsam:NonAnonymousResponses
policy assertion MUST NOT be used in the same policy alternative as the wsam:AnonymousResponses policy assertion.
The appearance of this element
within a policy alternativethe wsam:Addressing assertion
indicates that the endpoint expresses explicit support forrequires
request messages with to use response
endpoint EPRs that contain something other than the
anonymous URI as the value of [address]. In other words, the endpoint guarantees
support forrequires the use of non-anonymous
responses. This assertion is deliberately vague; its presence indicates that
some non-anonymous addresses will be accepted but doesn't constrain what such
an address might look like. A receiver can still reject a request that contains
an address that it doesn't understand or that requires a binding it doesn't
support.
As with the other
assertions, the absence of the wsam:NonAnonymousResponses policy assertion
within a policy alternative does not indicate that the endpoint will not
accept request messages with response endpoint EPRs that contain something
other than the anonymous URI address; it simply indicates the lack of any
affirmation of support for them.
The None URI
("http://www.w3.org/2005/08/addressing/none") may appear as the value
of [address] in place of a non-anonymous address; this value MUST be accepted.
Example 3-1. Subject supports WS-Addressing, no statement on
supported response EPRs
<wsp:Policy>
<wsam:Addressing wsp:Optional="true">
<wsp:Policy/>
</wsam:Addressing>
</wsp:Policy>
Example 3-2. Subject requires WS-Addressing, no statement on
supported response EPRs
<wsp:Policy>
<wsam:Addressing>
<wsp:Policy/>
</wsam:Addressing>
</wsp:Policy>
Example
3-3. Subject supports WS-Addressing, explicitly (and optionally) supports
anonymous and non-anonymous response EPRs
<wsp:Policy>
<wsam:Addressing wsp:Optional="true">
<wsp:Policy>
<wsam:AnonymousResponses wsp:Optional="true"/>
<wsam:NonAnonymousResponses wsp:Optional="true"/>
</wsp:Policy>
</wsam:Addressing>
</wsp:Policy>
Example
3-4. Subject requires WS-Addressing, requires explicit support of anonymous or
non-anonymous response EPRs
<wsp:Policy>
<wsam:Addressing>
<wsp:Policy>
<wsp:ExactlyOne>
<wsam:AnonymousResponses/>
<wsam:NonAnonymousResponses/>
</wsp:ExactlyOne>
</wsp:Policy>
</wsam:Addressing>
</wsp:Policy>
Example 3-53. Subject requires WS-Addressing and explicit
supportrequires the use of non-anonymous
response EPRs
<wsp:Policy>
<wsam:Addressing>
<wsp:Policy>
<wsam:NonAnonymousResponses/>
</wsp:Policy>
</wsam:Addressing>
</wsp:Policy>
Example 3-46.
Subject supports WS-Addressing, no statement on supported response EPRs
<wsp:Policy>
<wsp:ExactlyOne>
<wsp:All/>
<wsp:All>
<wsam:Addressing>
<wsp:Policy>
<wsp:ExactlyOne>
<wsp:All/>
</wsp:ExactlyOne>
</wsp:Policy>
</wsam:Addressing>
</wsp:All>
</wsp:ExactlyOne>
</wsp:Policy>
Example 3-57.
Subject requires WS-Addressing, no statement on supported response EPRs
<wsp:Policy>
<wsp:ExactlyOne>
<wsp:All>
<wsam:Addressing>
<wsp:Policy>
<wsp:ExactlyOne>
<wsp:All/>
</wsp:ExactlyOne>
</wsp:Policy>
</wsam:Addressing>
</wsp:All>
</wsp:ExactlyOne>
</wsp:Policy>
Example
3-8. Subject supports WS-Addressing, explicitly (and optionally) supports
anonymous and non-anonymous response EPRs
<wsp:Policy>
<wsp:ExactlyOne>
<wsp:All/>
<wsp:All>
<wsam:Addressing>
<wsp:Policy>
<wsp:ExactlyOne>
<wsp:All/>
</wsp:ExactlyOne>
</wsp:Policy>
</wsam:Addressing>
</wsp:All>
<wsp:All>
<wsam:Addressing>
<wsp:Policy>
<wsp:ExactlyOne>
<wsp:All>
<wsam:AnonymousResponses/>
</wsp:All>
</wsp:ExactlyOne>
</wsp:Policy>
</wsam:Addressing>
</wsp:All>
<wsp:All>
<wsam:Addressing>
<wsp:Policy>
<wsp:ExactlyOne>
<wsp:All>
<wsam:NonAnonymousResponses/>
</wsp:All>
</wsp:ExactlyOne>
</wsp:Policy>
</wsam:Addressing>
</wsp:All>
<wsp:All>
<wsam:Addressing>
<wsp:Policy>
<wsp:ExactlyOne>
<wsp:All>
<wsam:AnonymousResponses/>
<wsam:NonAnonymousResponses/>
</wsp:All>
</wsp:ExactlyOne>
</wsp:Policy>
</wsam:Addressing>
</wsp:All>
</wsp:ExactlyOne>
</wsp:Policy>
Example
3-9. Subject requires WS-Addressing, requires explicit support of anonymous or
non-anonymous response EPRs
<wsp:Policy>
<wsp:ExactlyOne>
<wsp:All>
<wsam:Addressing>
<wsp:Policy>
<wsp:ExactlyOne>
<wsp:All>
<wsam:AnonymousResponses/>
</wsp:All>
</wsp:ExactlyOne>
</wsp:Policy>
</wsam:Addressing>
</wsp:All>
<wsp:All>
<wsam:Addressing>
<wsp:Policy>
<wsp:ExactlyOne>
<wsp:All>
<wsam:NonAnonymousResponses/>
</wsp:All>
</wsp:ExactlyOne>
</wsp:Policy>
</wsam:Addressing>
</wsp:All>
</wsp:ExactlyOne>
</wsp:Policy>
Example 3-610.
Subject requires WS-Addressing and explicit support ofrequires
the use of non-anonymous response EPRs
<wsp:Policy>
<wsp:ExactlyOne>
<wsp:All>
<wsam:Addressing>
<wsp:Policy>
<wsp:ExactlyOne>
<wsp:All>
<wsam:NonAnonymousResponses/>
</wsp:All>
</wsp:ExactlyOne>
</wsp:Policy>
</wsam:Addressing>
</wsp:All>
</wsp:ExactlyOne>
</wsp:Policy>
Example
3-7. Client looking for an
endpoint which supports Addressing, and which supports anonymous responses
<wsp:Policy>
<wsp:ExactlyOne>
<wsp:All>
<wsam:Addressing>
<wsp:Policy>
<wsp:ExactlyOne>
<wsp:All>
<AnonymousResponses Optional=”true” />
</wsp:All>
</wsp:ExactlyOne>
</wsp:Policy>
</wsam:Addressing>
</wsp:All>
</wsp:ExactlyOne>
</wsp:Policy>
Example
3-8. Client looking for an
endpoint which supports Addressing, and does not require support for responses
(will intersect with anything)
<wsp:Policy>
<wsp:ExactlyOne>
<wsp:All>
<wsam:Addressing>
<-- supports all response types -->
<wsp:Policy>
</wsp:Policy>
</wsam:Addressing>
</wsp:All>
<wsp:All>
<wsam:Addressing>
<-- requires Anonymous responses -->
<wsp:Policy>
<wsp:ExactlyOne>
<wsp:All>
<AnonymousResponses />
</wsp:All>
</wsp:ExactlyOne>
</wsp:Policy>
</wsam:Addressing>
</wsp:All>
<wsp:All>
<wsam:Addressing>
<- requires nonAnonymous
responses -->
<wsp:Policy>
<wsp:ExactlyOne>
<wsp:All>
<NonAnonymousResponses />
</wsp:All>
</wsp:ExactlyOne>
</wsp:Policy>
</wsam:Addressing>
</wsp:All>
</wsp:ExactlyOne>
</wsp:Policy>