Another abandoned server code base... this is kind of an ancestor of taskrambler.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

2158 lines
86 KiB

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en-US" xmlns="http://www.w3.org/1999/xhtml" xml:lang=
"en-US">
<head>
<meta http-equiv="Content-Type" content=
"text/html; charset=utf-8" />
<title>Web Services Addressing 1.0 - Metadata</title>
<style type="text/css" xml:space="preserve">
/*<![CDATA[*/
code { font-family: monospace; }
div.constraint,
div.issue,
div.note,
div.notice { margin-left: 2em; }
ol.enumar { list-style-type: decimal; }
ol.enumla { list-style-type: lower-alpha; }
ol.enumlr { list-style-type: lower-roman; }
ol.enumua { list-style-type: upper-alpha; }
ol.enumur { list-style-type: upper-roman; }
dt.label { display: run-in; }
li, p { margin-top: 0.3em;
margin-bottom: 0.3em; }
.diff-chg { background-color: yellow; }
.diff-del { background-color: red; text-decoration: line-through;}
.diff-add { background-color: lime; }
table { empty-cells: show; }
table caption {
font-weight: normal;
font-style: italic;
text-align: left;
margin-bottom: .5em;
}
div.issue {
color: red;
}
.rfc2119 {
font-variant: small-caps;
}
div.exampleInner pre { margin-left: 1em;
margin-top: 0em; margin-bottom: 0em}
div.exampleOuter {border: 4px double gray;
margin: 0em; padding: 0em}
div.exampleInner { background-color: #d5dee3;
border-top-width: 4px;
border-top-style: double;
border-top-color: #d3d3d3;
border-bottom-width: 4px;
border-bottom-style: double;
border-bottom-color: #d3d3d3;
padding: 4px; margin: 0em }
div.exampleWrapper { margin: 4px }
div.exampleHeader { font-weight: bold;
margin: 4px}
/*]]>*/
</style>
<link rel="stylesheet" type="text/css" href=
"http://www.w3.org/StyleSheets/TR/W3C-REC.css" />
</head>
<body>
<div class="head">
<p><a href="http://www.w3.org/"><img src=
"http://www.w3.org/Icons/w3c_home" alt="W3C" height="48" width=
"72" /></a></p>
<h1><a name="title" id="title"></a>Web Services Addressing 1.0 -
Metadata</h1>
<h2><a name="w3c-doctype" id="w3c-doctype"></a>W3C Recommendation 4
September 2007</h2>
<dl>
<dt>This version:</dt>
<dd><a href=
"http://www.w3.org/TR/2007/REC-ws-addr-metadata-20070904">http://www.w3.org/TR/2007/REC-ws-addr-metadata-20070904</a></dd>
<dt>Latest version:</dt>
<dd><a href=
"http://www.w3.org/TR/ws-addr-metadata">http://www.w3.org/TR/ws-addr-metadata</a></dd>
<dt>Previous version:</dt>
<dd><a href=
"http://www.w3.org/TR/2007/PR-ws-addr-metadata-20070731">http://www.w3.org/TR/2007/PR-ws-addr-metadata-20070731</a></dd>
<dt>Editors:</dt>
<dd>Martin Gudgin, Microsoft Corp</dd>
<dd>Marc Hadley, Sun Microsystems, Inc.</dd>
<dd>Tony Rogers, CA, Inc.</dd>
<dd>Ümit Yalçinalp, SAP AG</dd>
</dl>
<p>Please refer to the <a href=
"http://www.w3.org/2006/05/ws-addr-errata.html"><strong>errata</strong></a>
for this document, which may include some normative
corrections.</p>
<p>This document is also available in these non-normative formats:
<a href="ws-addr-metadata.pdf">PDF</a>, <a href=
"ws-addr-metadata.ps">PostScript</a>, <a href=
"ws-addr-metadata.xml">XML</a>, and&#160;<a href=
"ws-addr-metadata.txt">plain text</a>.</p>
<p>See also <a href=
"http://www.w3.org/2003/03/Translations/byTechnology?technology=ws-addr-metadata">
<strong>translations</strong></a>.</p>
<p class="copyright"><a href=
"http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a>&#160;©&#160;2007&#160;<a href="http://www.w3.org/"><acronym title="World Wide Web Consortium">W3C</acronym></a><sup>®</sup>
(<a href="http://www.csail.mit.edu/"><acronym title=
"Massachusetts Institute of Technology">MIT</acronym></a>, <a href=
"http://www.ercim.org/"><acronym title=
"European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>,
<a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved.
W3C <a href=
"http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
<a href=
"http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>
and <a href=
"http://www.w3.org/Consortium/Legal/copyright-documents">document
use</a> rules apply.</p>
</div>
<hr />
<div>
<h2><a name="abstract" id="abstract"></a>Abstract</h2>
<p>Web Services Addressing provides transport-neutral mechanisms to
address Web services and messages. Web Services Addressing 1.0 -
Metadata (this document) defines how the abstract properties
defined in Web Services Addressing 1.0 - Core are described using
WSDL, how to include WSDL metadata in endpoint references, and how
WS-Policy can be used to indicate the support of WS-Addressing by a
Web service.</p>
</div>
<div>
<h2><a name="status" id="status"></a>Status of this Document</h2>
<p><em>This section describes the status of this document at the
time of its publication. Other documents may supersede this
document. A list of current W3C publications and the latest
revision of this technical report can be found in the <a href=
"http://www.w3.org/TR/">W3C technical reports index</a> at
http://www.w3.org/TR/.</em></p>
<p>This is the <a href=
"http://www.w3.org/2005/10/Process-20051014/tr.html#RecsW3C">W3C
Recommendation</a> of Web Services Addressing 1.0 - Metadata
specification for review by W3C members and other interested
parties. It has been produced by the <a href=
"http://www.w3.org/2002/ws/addr/">Web Services Addressing Working
Group</a>, which is part of the <a href=
"http://www.w3.org/2002/ws/Activity">W3C Web Services
Activity</a>.</p>
<p>Please send comments on this document to the public <a href=
"mailto:public-ws-addressing-comments@w3.org">public-ws-addressing-comments@w3.org</a>
mailing list (<a href=
"http://lists.w3.org/Archives/Public/public-ws-addressing-comments/">public
archive</a>).</p>
<p>The Working Group released a test suite along with an <a href=
"http://dev.w3.org/2004/ws/addressing/testsuitewsdl/report/Overview.html">
implementation report</a>. A <a href="diff.html">diff-marked
version against the previous version of this document</a> is
available.</p>
<p>This document has been reviewed by W3C Members, by software
developers, and by other W3C groups and interested parties, and is
endorsed by the Director as a W3C Recommendation. It is a stable
document and may be used as reference material or cited from
another document. W3C's role in making the Recommendation is to
draw attention to the specification and to promote its widespread
deployment. This enhances the functionality and interoperability of
the Web.</p>
<p>This document was produced by a group operating under the
<a href="http://www.w3.org/Consortium/Patent-Policy-20040205/">5
February 2004 W3C Patent Policy</a>. W3C maintains a <a href=
"http://www.w3.org/2004/01/pp-impl/36696/status#specs">public list
of any patent disclosures</a> made in connection with the
deliverables of the group; that page also includes instructions for
disclosing a patent. An individual who has actual knowledge of a
patent which the individual believes contains <a href=
"http://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential">
Essential Claim(s)</a> must disclose the information in accordance
with <a href=
"http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure">
section 6 of the W3C Patent Policy</a>.</p>
</div>
<div class="toc">
<h2><a name="contents" id="contents"></a>Table of Contents</h2>
<p class="toc">1. <a href="#tocRange">Introduction</a>
<br />
&#160;&#160;&#160;&#160;1.1 <a href="#notation">Notational
Conventions</a>
<br />
&#160;&#160;&#160;&#160;1.2 <a href="#namespaces">Namespaces</a>
<br />
2. <a href="#metadatinepr">Including WSDL Metadata in EPRs</a>
<br />
&#160;&#160;&#160;&#160;2.1 <a href=
"#refmetadatfromepr">Referencing WSDL Metadata from an EPR</a>
<br />
3. <a href="#indicatinguse">Indicating Use of WS-Addressing</a>
<br />
&#160;&#160;&#160;&#160;3.1 <a href="#wspolicyassertions">WS-Policy
Assertions</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;3.1.1 <a href=
"#wspolicyaddressing">Addressing Assertion</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;3.1.2 <a href=
"#wspolicyanonresponses">AnonymousResponses Assertion</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;3.1.3 <a href=
"#wspolicynonanonresponses">NonAnonymousResponses Assertion</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;3.1.4 <a href=
"#policyexamplesincompact">Examples (Compact Form)</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;3.1.5 <a href=
"#policyassertionsinnormal">Examples (Normal Form)</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;3.1.6 <a href=
"#usingintersection">Finding Compatible Policies</a>
<br />
4. <a href="#mapvaluesinwsdl">Specifying Message Addressing
Properties in WSDL</a>
<br />
&#160;&#160;&#160;&#160;4.1 <a href="#eprinendpoint">Extending WSDL
Endpoints with an EPR</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;4.1.1 <a href=
"#id2273678">WSDL 2.0 Component Model Changes</a>
<br />
&#160;&#160;&#160;&#160;4.2 <a href="#destinwsdl">Destination</a>
<br />
&#160;&#160;&#160;&#160;4.3 <a href="#refpinwsdl">Reference
Parameters</a>
<br />
&#160;&#160;&#160;&#160;4.4 <a href="#actioninwsdl">Action</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;4.4.1 <a href=
"#explicitaction">Explicit Association</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;4.4.2 <a href=
"#defactionwsdl20">Default Action Pattern for WSDL 2.0</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;4.4.3 <a href=
"#id2274552">WSDL 2.0 Component Model Changes</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;4.4.4 <a href=
"#defactionwsdl11">Default Action Pattern for WSDL 1.1</a>
<br />
5. <a href="#WSDLMEPS">WS-Addressing and WSDL Message Exchange
Patterns</a>
<br />
&#160;&#160;&#160;&#160;5.1 <a href="#WSDL11MEPS">WSDL 1.1 Message
Exchange Patterns</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.1.1 <a href=
"#wsdl11oneway">One-way</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.1.2 <a href=
"#wsdl11requestresponse">Request-Response</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.1.3 <a href=
"#wsdl11notification">Notification</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.1.4 <a href=
"#wsdl11solicitresponse">Solicit-response</a>
<br />
&#160;&#160;&#160;&#160;5.2 <a href="#WSDL20MEPS">WSDL 2.0 Message
Exchange Patterns</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.2.1 <a href=
"#wsdl20inonly">In-only</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.2.2 <a href=
"#wsdl20robustinonly">Robust In-only</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.2.3 <a href=
"#wsdl20inout">In-out</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.2.4 <a href=
"#wsdl20inoptionalout">In-optional-out</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.2.5 <a href=
"#wsdl20outonly">Out-only</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.2.6 <a href=
"#wsdl20robustoutonly">Robust Out-only</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.2.7 <a href=
"#wsdl20outin">Out-in</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.2.8 <a href=
"#wsdl20outoptionalin">Out-optional-in</a>
<br />
6. <a href="#conformance">Conformance</a>
<br />
7. <a href="#references">References</a>
<br />
&#160;&#160;&#160;&#160;7.1 <a href="#id2278438">Normative</a>
<br />
&#160;&#160;&#160;&#160;7.2 <a href="#id2279332">Informative</a>
<br /></p>
<h3><a name="appendices" id="appendices"></a>Appendices</h3>
<p class="toc">A. <a href="#acknowledgments">Acknowledgements</a>
(Non-Normative)
<br />
B. <a href="#actioncompatibility">Compatibility of [action] with
previous versions of WS-Addressing</a> (Non-Normative)
<br /></p>
</div>
<hr />
<div class="body">
<div class="div1">
<h2><a name="tocRange" id="tocRange"></a>1. Introduction</h2>
<p>Web Services Addressing 1.0 - Core [<cite><a href=
"#WSADDR-CORE">WS-Addressing Core</a></cite>] defines a set of
abstract properties and an XML Infoset [<cite><a href=
"#XMLInfoSet">XML Information Set</a></cite>] representation of Web
service endpoint references (EPRs) and to facilitate end-to-end
addressing of endpoints in messages. Web Services Addressing 1.0 -
Metadata (this document) defines how the abstract properties
defined in Web Services Addressing 1.0 - Core are described using
WSDL and how WS-Policy can be used to indicate the support of
WS-Addressing by a Web service. WS-Addressing is designed to be
able to work with WS-Policy 1.5 [<cite><a href="#WSPolicy">WS
Policy 1.5</a></cite>], WSDL 2.0 [<cite><a href="#WSDL20">WSDL
2.0</a></cite>] and also (for backwards compatibility) with WSDL
1.1 [<cite><a href="#WSDL11">WSDL 1.1</a></cite>] described
services.</p>
<div class="div2">
<h3><a name="notation" id="notation"></a>1.1 Notational
Conventions</h3>
<p>The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL"
in this document are to be interpreted as described in RFC 2119
[<cite><a href="#RFC2119">IETF RFC 2119</a></cite>].</p>
<p>When describing abstract data models, this specification uses
the notational convention used by the XML Infoset [<cite><a href=
"#XMLInfoSet">XML Information Set</a></cite>]. Specifically,
abstract property names always appear in square brackets (e.g.,
[some property]).</p>
<p>When describing concrete XML schemas [<cite><a href=
"#XMLSchemaP1">XML Schema Structures</a></cite>, <cite><a href=
"#XMLSchemaP2">XML Schema Datatypes</a></cite>], this specification
uses the notational convention of WS-Security [<cite><a href=
"#WS-Security">WS-Security</a></cite>]. Specifically, each member
of an element's [children] or [attributes] property is described
using an XPath-like notation (e.g.,
/x:MyHeader/x:SomeProperty/@value1). The use of {any} indicates the
presence of an element wildcard (&lt;xs:any/&gt;). The use of
@{any} indicates the presence of an attribute wildcard
(&lt;xs:anyAttribute/&gt;).</p>
</div>
<div class="div2">
<h3><a name="namespaces" id="namespaces"></a>1.2 Namespaces</h3>
<p>This specification uses a number of namespace prefixes
throughout; they are listed in <a href="#nsprefs">Table 1-1</a>.
Note that the choice of any namespace prefix is arbitrary and not
semantically significant (see [<cite><a href="#XMLNS">XML
Namespaces</a></cite>]).</p>
<a name="nsprefs" id="nsprefs"></a>
<table summary="Namespace prefixes usage in this specification"
border="1">
<caption>Table 1-1. Prefixes and Namespaces used in this
specification</caption>
<tbody>
<tr>
<th align="left" rowspan="1" colspan="1">Prefix</th>
<th align="left" rowspan="1" colspan="1">Namespace</th>
</tr>
<tr>
<td rowspan="1" colspan="1">S</td>
<td rowspan="1" colspan="1">
http://www.w3.org/2003/05/soap-envelope</td>
</tr>
<tr>
<td rowspan="1" colspan="1">S11</td>
<td rowspan="1" colspan="1">
http://schemas.xmlsoap.org/soap/envelope</td>
</tr>
<tr>
<td rowspan="1" colspan="1">wsa</td>
<td rowspan="1" colspan="1">
http://www.w3.org/2005/08/addressing</td>
</tr>
<tr>
<td rowspan="1" colspan="1">wsam</td>
<td rowspan="1" colspan="1">
http://www.w3.org/2007/05/addressing/metadata</td>
</tr>
<tr>
<td rowspan="1" colspan="1">wsoap</td>
<td rowspan="1" colspan="1">http://www.w3.org/ns/wsdl/soap</td>
</tr>
<tr>
<td rowspan="1" colspan="1">xs</td>
<td rowspan="1" colspan="1">http://www.w3.org/2001/XMLSchema</td>
</tr>
<tr>
<td rowspan="1" colspan="1">wsdl</td>
<td rowspan="1" colspan="1">Either http://www.w3.org/ns/wsdl or
http://schemas.xmlsoap.org/wsdl/ depending on context</td>
</tr>
<tr>
<td rowspan="1" colspan="1">wsdl20</td>
<td rowspan="1" colspan="1">http://www.w3.org/ns/wsdl</td>
</tr>
<tr>
<td rowspan="1" colspan="1">wsdl11</td>
<td rowspan="1" colspan="1">http://schemas.xmlsoap.org/wsdl/</td>
</tr>
<tr>
<td rowspan="1" colspan="1">soap11</td>
<td rowspan="1" colspan="1">
http://schemas.xmlsoap.org/wsdl/soap/</td>
</tr>
<tr>
<td rowspan="1" colspan="1">wsp</td>
<td rowspan="1" colspan="1">http://www.w3.org/ns/ws-policy</td>
</tr>
</tbody>
</table>
<br />
<p>The working group intends to update the value of the Web
Services Addressing 1.0 - Metadata namespace URI each time a new
version of this document is published until such time that the
document reaches Candidate Recommendation status. Once it has
reached Candidate Recommendation status, the working group intends
to maintain the value of the Web Services Addressing 1.0 - Metadata
namespace URI that was assigned in the Candidate Recommendation
unless significant changes are made that impact the implementation
of the specification.</p>
<p>WS-Addressing is defined in terms of the XML Information Set
[<cite><a href="#XMLInfoSet">XML Information Set</a></cite>].
WS-Addressing can be used with SOAP [<cite><a href=
"#SOAP12-PART1">SOAP 1.2</a></cite>, <cite><a href="#SOAP11">SOAP
1.1</a></cite>] as described in Web Services Addressing 1.0 - SOAP
Binding [<cite><a href="#WSADDR-SOAP">WS-Addressing SOAP
Binding</a></cite>]. The examples in this specification use an XML
1.0 [<cite><a href="#XML10">XML 1.0</a></cite>] representation but
this is not a requirement.</p>
<p>All information items defined by this specification are
identified by the XML namespace URI [<cite><a href="#XMLNS">XML
Namespaces</a></cite>]
"http://www.w3.org/2007/05/addressing/metadata". A normative XML
Schema [<cite><a href="#XMLSchemaP1">XML Schema
Structures</a></cite>, <cite><a href="#XMLSchemaP2">XML Schema
Datatypes</a></cite>] document can be obtained by dereferencing the
XML namespace URI.</p>
</div>
</div>
<div class="div1">
<h2><a name="metadatinepr" id="metadatinepr"></a>2. Including WSDL
Metadata in EPRs</h2>
<p>An EPR's metadata section can contain a reference to WSDL
metadata, can include embedded WSDL metadata, or both.</p>
<div class="div2">
<h3><a name="refmetadatfromepr" id="refmetadatfromepr"></a>2.1
Referencing WSDL Metadata from an EPR</h3>
<p>The WSDL binding of Web Services Addressing introduces the
following element and attribute information items for referencing
WSDL metadata from an EPR's metadata section:</p>
<dl>
<dt class="label">wsam:InterfaceName (0..1)</dt>
<dd>
<p>A QName identifying a description of the sequences of messages
that a service sends and/or receives. This corresponds to a WSDL
2.0 interface or, for backwards compatibility, a WSDL 1.1 port
type. When this element is included in an EPR, the EPR is
considered to be specific to the interface or port type it
identifies.</p>
</dd>
<dt class="label">wsam:ServiceName (0..1)</dt>
<dd>
<p>A QName that identifies the set of endpoints at which a
particular Web service is deployed. The set of endpoints is
represented by a service in WSDL 2.0 or, for backwards
compatibility, a WSDL 1.1 service.</p>
</dd>
<dt class="label">wsam:ServiceName/@EndpointName (0..1)</dt>
<dd>
<p>An NCName that identifies one endpoint amongst the set
identified by the service name above. An endpoint is represented by
an endpoint in WSDL 2.0 or, for backwards compatibility, a port in
WSDL 1.1. When this attribute is specified, the EPR is considered
to be specific to the endpoint or port it identifies.</p>
</dd>
</dl>
<p>The element information items defined above are used in an EPR's
metadata section. The following shows an example endpoint
reference. This references the interface named
"ghns:reservationInterface" at the endpoint IRI
"http://greath.example.com/2004/reservation". Note the use of the
WSDL[<cite><a href="#WSDL20">WSDL 2.0</a></cite>] wsdlLocation
attribute.</p>
<div class="exampleOuter">
<p style="text-align: left" class="exampleHead"><em><span>Example
2-1.</span> Example endpoint reference.</em></p>
<div class="exampleInner">
<pre xml:space="preserve">
&lt;wsa:EndpointReference
xmlns:wsa="http://www.w3.org/2005/08/addressing"
xmlns:ghns="http://greath.example.com/2004/wsdl/resSvc"&gt;
&lt;wsa:Address&gt;http://greath.example.com/2004/reservation&lt;/wsa:Address&gt;
&lt;wsa:Metadata
xmlns:wsdli="http://www.w3.org/ns/wsdl-instance"
wsdli:wsdlLocation="http://greath.example.com/2004/wsdl/resSvc http://greath.example.com/2004/reservation.wsdl"&gt;
&lt;wsam:InterfaceName&gt;ghns:reservationInterface&lt;/wsam:InterfaceName&gt;
&lt;/wsa:Metadata&gt;
&lt;/wsa:EndpointReference&gt;
</pre></div>
</div>
</div>
</div>
<div class="div1">
<h2><a name="indicatinguse" id="indicatinguse"></a>3. Indicating
Use of WS-Addressing</h2>
<p>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
[<cite><a href="#WSPolicy">WS Policy 1.5</a></cite>].</p>
<div class="div2">
<h3><a name="wspolicyassertions" id="wspolicyassertions"></a>3.1
WS-Policy Assertions</h3>
<p>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 [<cite><a href="#WSPolicy">WS Policy
1.5</a></cite>] and Web Services Policy - Attachment
[<cite><a href="#WSPolicyAttachment">WS Policy 1.5 -
Attachment</a></cite>] specifications. This specification defines
three policy assertions.</p>
<p>The <code>wsam:Addressing</code> policy assertion applies to the
endpoint policy subject.</p>
<p>For WSDL 1.1, these assertions may be attached to
<code>wsdl11:port</code> or <code>wsdl11:binding</code>. For WSDL
2.0, they may be attached to <code>wsdl20:endpoint</code> or
<code>wsdl20:binding</code>. A policy expression containing the
wsam:Addressing policy assertion MUST NOT be attached to a
<code>wsdl:portType</code> or <code>wsdl20:interface</code>. The
<code>wsam:Addressing</code> policy assertion specifies a concrete
behavior whereas the <code>wsdl:portType</code> or
<code>wsdl20:interface</code> is an abstract construct.</p>
<div class="div3">
<h4><a name="wspolicyaddressing" id="wspolicyaddressing"></a>3.1.1
Addressing Assertion</h4>
<p>The <code>wsam:Addressing</code> 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 <code>wsam:Addressing</code>
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; the compact authoring style for an optional policy
assertion provided by WS-Policy V1.5 [<cite><a href="#WSPolicy">WS
Policy 1.5</a></cite>] may be used. The <code>wsp:Optional</code>
attribute, as a syntactic shortcut, can be used with the
<code>wsam:Addressing</code> assertion. This indicates two policy
alternatives, one which contains the policy assertion, and another
which does not.</p>
<p>The inclusion of this assertion implies support for the Web
Services Addressing 1.0 - Core [<cite><a href=
"#WSADDR-CORE">WS-Addressing Core</a></cite>] and Web Services
Addressing 1.0 - SOAP Binding [<cite><a href=
"#WSADDR-SOAP">WS-Addressing SOAP Binding</a></cite>].</p>
</div>
<div class="div3">
<h4><a name="wspolicyanonresponses" id=
"wspolicyanonresponses"></a>3.1.2 AnonymousResponses Assertion</h4>
<p>The <code>wsam:AnonymousResponses</code> element MAY be used as
a policy assertion nested within the <code>wsam:Addressing</code>
assertion in accordance with the rules laid down by <a href=
"http://www.w3.org/TR/2007/CR-ws-policy-20070330/#Policy_Assertion_Nesting">
policy assertion nesting</a> ([<cite><a href="#WSPolicy">WS Policy
1.5</a></cite>], section 4.3.2).</p>
<p>The appearance of this element within the
<code>wsam:Addressing</code> policy assertion indicates that the
endpoint requires request messages to use response endpoint EPRs
that contain the anonymous URI
("<code>http://www.w3.org/2005/08/addressing/anonymous</code>") as
the value of [address]. In other words, the endpoint requires the
use of anonymous responses.</p>
<p>The None URI
("<code>http://www.w3.org/2005/08/addressing/none</code>") may
appear as the value of [address] in place of the anonymous URI;
this value MUST be accepted.</p>
</div>
<div class="div3">
<h4><a name="wspolicynonanonresponses" id=
"wspolicynonanonresponses"></a>3.1.3 NonAnonymousResponses
Assertion</h4>
<p>The <code>wsam:NonAnonymousResponses</code> element MAY be used
as a policy assertion nested within the Addressing assertion in
accordance with the rules laid down by <a href=
"http://www.w3.org/TR/2007/CR-ws-policy-20070330/#Policy_Assertion_Nesting">
policy assertion nesting</a> ([<cite><a href="#WSPolicy">WS Policy
1.5</a></cite>], section 4.3.2). The
<code>wsam:NonAnonymousResponses</code> policy assertion MUST NOT
be used in the same policy alternative as the
<code>wsam:AnonymousResponses</code> policy assertion.</p>
<p>The appearance of this element within the
<code>wsam:Addressing</code> assertion indicates that the endpoint
expresses requires request messages to use response endpoint EPRs
that contain something other than the anonymous URI as the value of
[address]. In other words, the endpoint requires 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.</p>
<p>The None URI
("<code>http://www.w3.org/2005/08/addressing/none</code>") may
appear as the value of [address] in place of a non-anonymous
address; this value MUST be accepted.</p>
</div>
<div class="div3">
<h4><a name="policyexamplesincompact" id=
"policyexamplesincompact"></a>3.1.4 Examples (Compact Form)</h4>
<div class="exampleOuter">
<p style="text-align: left" class="exampleHead"><em><span>Example
3-1.</span> Subject supports WS-Addressing</em></p>
<div class="exampleInner">
<pre xml:space="preserve">
&lt;wsp:Policy&gt;
&lt;wsam:Addressing wsp:Optional="true"&gt;
&lt;wsp:Policy/&gt;
&lt;/wsam:Addressing&gt;
&lt;/wsp:Policy&gt;
</pre></div>
</div>
<div class="exampleOuter">
<p style="text-align: left" class="exampleHead"><em><span>Example
3-2.</span> Subject requires WS-Addressing</em></p>
<div class="exampleInner">
<pre xml:space="preserve">
&lt;wsp:Policy&gt;
&lt;wsam:Addressing&gt;
&lt;wsp:Policy/&gt;
&lt;/wsam:Addressing&gt;
&lt;/wsp:Policy&gt;
</pre></div>
</div>
<div class="exampleOuter">
<p style="text-align: left" class="exampleHead"><em><span>Example
3-3.</span> Subject requires WS-Addressing and requires the use of
non-anonymous response EPRs</em></p>
<div class="exampleInner">
<pre xml:space="preserve">
&lt;wsp:Policy&gt;
&lt;wsam:Addressing&gt;
&lt;wsp:Policy&gt;
&lt;wsam:NonAnonymousResponses/&gt;
&lt;/wsp:Policy&gt;
&lt;/wsam:Addressing&gt;
&lt;/wsp:Policy&gt;
</pre></div>
</div>
</div>
<div class="div3">
<h4><a name="policyassertionsinnormal" id=
"policyassertionsinnormal"></a>3.1.5 Examples (Normal Form)</h4>
<div class="exampleOuter">
<p style="text-align: left" class="exampleHead"><em><span>Example
3-4.</span> Subject supports WS-Addressing</em></p>
<div class="exampleInner">
<pre xml:space="preserve">
&lt;wsp:Policy&gt;
&lt;wsp:ExactlyOne&gt;
&lt;wsp:All/&gt;
&lt;wsp:All&gt;
&lt;wsam:Addressing&gt;
&lt;wsp:Policy&gt;
&lt;wsp:ExactlyOne&gt;
&lt;wsp:All/&gt;
&lt;/wsp:ExactlyOne&gt;
&lt;/wsp:Policy&gt;
&lt;/wsam:Addressing&gt;
&lt;/wsp:All&gt;
&lt;/wsp:ExactlyOne&gt;
&lt;/wsp:Policy&gt;
</pre></div>
</div>
<div class="exampleOuter">
<p style="text-align: left" class="exampleHead"><em><span>Example
3-5.</span> Subject requires WS-Addressing</em></p>
<div class="exampleInner">
<pre xml:space="preserve">
&lt;wsp:Policy&gt;
&lt;wsp:ExactlyOne&gt;
&lt;wsp:All&gt;
&lt;wsam:Addressing&gt;
&lt;wsp:Policy&gt;
&lt;wsp:ExactlyOne&gt;
&lt;wsp:All/&gt;
&lt;/wsp:ExactlyOne&gt;
&lt;/wsp:Policy&gt;
&lt;/wsam:Addressing&gt;
&lt;/wsp:All&gt;
&lt;/wsp:ExactlyOne&gt;
&lt;/wsp:Policy&gt;
</pre></div>
</div>
<div class="exampleOuter">
<p style="text-align: left" class="exampleHead"><em><span>Example
3-6.</span> Subject requires WS-Addressing and requires the use of
non-anonymous response EPRs</em></p>
<div class="exampleInner">
<pre xml:space="preserve">
&lt;wsp:Policy&gt;
&lt;wsp:ExactlyOne&gt;
&lt;wsp:All&gt;
&lt;wsam:Addressing&gt;
&lt;wsp:Policy&gt;
&lt;wsp:ExactlyOne&gt;
&lt;wsp:All&gt;
&lt;wsam:NonAnonymousResponses/&gt;
&lt;/wsp:All&gt;
&lt;/wsp:ExactlyOne&gt;
&lt;/wsp:Policy&gt;
&lt;/wsam:Addressing&gt;
&lt;/wsp:All&gt;
&lt;/wsp:ExactlyOne&gt;
&lt;/wsp:Policy&gt;
</pre></div>
</div>
</div>
<div class="div3">
<h4><a name="usingintersection" id="usingintersection"></a>3.1.6
Finding Compatible Policies</h4>
<p>When a client is looking for an endpoint with compatible policy,
one common method used is to take the policy intersection between
the policy which the client is looking for, and the policy asserted
in the WSDL document; a non-empty intersection is sought. The
policy used by the client must be written carefully to avoid
unexpected results. This is most obvious when the client is not
looking for explicit support of a particular kind of response;
failing to take care could mean missing a compatible policy.</p>
<div class="exampleOuter">
<p style="text-align: left" class="exampleHead"><em><span>Example
3-7.</span> Client looking for an endpoint which supports
Addressing, and which supports anonymous responses</em></p>
<div class="exampleInner">
<pre xml:space="preserve">
&lt;wsp:Policy&gt;
&lt;wsp:ExactlyOne&gt;
&lt;wsp:All&gt;
&lt;wsam:Addressing&gt;
&lt;wsp:Policy&gt;
&lt;wsp:ExactlyOne&gt;
&lt;wsp:All&gt;
&lt;AnonymousResponses Optional=”true”/&gt;
&lt;/wsp:All&gt;
&lt;/wsp:ExactlyOne&gt;
&lt;/wsp:Policy&gt;
&lt;/wsam:Addressing&gt;
&lt;/wsp:All&gt;
&lt;/wsp:ExactlyOne&gt;
&lt;/wsp:Policy&gt;
</pre></div>
</div>
<div class="exampleOuter">
<p style="text-align: left" class="exampleHead"><em><span>Example
3-8.</span> Client looking for an endpoint which supports
Addressing, and does not require support for responses (will
intersect with anything)</em></p>
<div class="exampleInner">
<pre xml:space="preserve">
&lt;wsp:Policy&gt;
&lt;wsp:ExactlyOne&gt;
&lt;wsp:All&gt;
&lt;wsam:Addressing&gt; &lt;-- supports all response types --&gt;
&lt;wsp:Policy&gt;
&lt;/wsp:Policy&gt;
&lt;/wsam:Addressing&gt;
&lt;/wsp:All&gt;
&lt;wsp:All&gt;
&lt;wsam:Addressing&gt; &lt;-- requires Anonymous responses --&gt;
&lt;wsp:Policy&gt;
&lt;wsp:ExactlyOne&gt;
&lt;wsp:All&gt;
&lt;AnonymousResponses /&gt;
&lt;/wsp:All&gt;
&lt;/wsp:ExactlyOne&gt;
&lt;/wsp:Policy&gt;
&lt;/wsam:Addressing&gt;
&lt;/wsp:All&gt;
&lt;wsp:All&gt;
&lt;wsam:Addressing&gt; &lt;- requires nonAnonymous responses --&gt;
&lt;wsp:Policy&gt;
&lt;wsp:ExactlyOne&gt;
&lt;wsp:All&gt;
&lt;NonAnonymousResponses /&gt;
&lt;/wsp:All&gt;
&lt;/wsp:ExactlyOne&gt;
&lt;/wsp:Policy&gt;
&lt;/wsam:Addressing&gt;
&lt;/wsp:All&gt;
&lt;/wsp:ExactlyOne&gt;
&lt;/wsp:Policy&gt;
</pre></div>
</div>
<p>For more detailed descriptions of the use of wsp:Optional,
wsp:Ignorable, and strict and lax intersection, please refer to the
WS-Policy Primer [<cite><a href="#WSPolicyPrimer">WS Policy 1.5 -
Primer</a></cite>].</p>
</div>
</div>
</div>
<div class="div1">
<h2><a name="mapvaluesinwsdl" id="mapvaluesinwsdl"></a>4.
Specifying Message Addressing Properties in WSDL</h2>
<p>This section describes how the values of certain message
addressing properties can be specified in WSDL. In some cases the
values of message addressing properties are specified using
existing WSDL constructs, in other cases new WSDL extensions are
defined for that purpose.</p>
<div class="div2">
<h3><a name="eprinendpoint" id="eprinendpoint"></a>4.1 Extending
WSDL Endpoints with an EPR</h3>
<p>A wsdl20:endpoint or wsdl11:port element MAY be extended using a
child wsa:EndpointReference element. When extended this way, the
[address] property of the child EPR MUST match the {address}
property of the endpoint component (WSDL 2.0) or the address value
provided by the relevant port extension (WSDL 1.1). For example, in
a SOAP 1.1 port described using WSDL 1.1, the location attribute of
a soap11:address element (if present) would have the same value as
the wsa:Address child element of the wsa:EndpointReference
element.</p>
<div class="div3">
<h4><a name="id2273678" id="id2273678"></a>4.1.1 WSDL 2.0 Component
Model Changes</h4>
<p>Use of WS-Addressing adds the following OPTIONAL properties to
the WSDL 2.0 component model:</p>
<ul>
<li>
<p>A property of the Endpoint component, named {endpoint
reference}. This property is of type wsa:EndpointReference, with a
cardinality of 1. The property has the value of the
wsa:EndpointReference element used as a child of wsdl20:endpoint,
if any. If no such extension exists, this property is absent.</p>
</li>
</ul>
</div>
</div>
<div class="div2">
<h3><a name="destinwsdl" id="destinwsdl"></a>4.2 Destination</h3>
<p>The value of the [destination] message addressing property for a
message sent to an endpoint typically matches the value of the
{address} property of the endpoint component (WSDL 2.0) or the
address value (if any) provided by the relevant port extension
(WSDL 1.1). For a SOAP 1.1 port described using WSDL 1.1, the value
is provided by the location attribute of the soap11:address
extension element. For an endpoint or port extended with an EPR
(see <a href="#eprinendpoint"><strong>4.1 Extending WSDL Endpoints
with an EPR</strong></a>), the value is provided by the [address]
property of the EPR.</p>
<p>Additional runtime information could override the value of the
[destination] message addressing property for messages sent to an
endpoint, e.g. a runtime exchange might result in a redirection to
a different EPR. Note that WS-Addressing does not define any
normative mechanism for such redirection.</p>
</div>
<div class="div2">
<h3><a name="refpinwsdl" id="refpinwsdl"></a>4.3 Reference
Parameters</h3>
<p>When a wsa:EndpointReference element is present in a
wsdl20:endpoint or a wsdl11:port element (see <a href=
"#eprinendpoint"><strong>4.1 Extending WSDL Endpoints with an
EPR</strong></a>), the value of the [reference parameters] message
addressing property for a message sent to an endpoint MUST include
the contents of the wsa:ReferenceParameters element, if one exists
within that EPR.</p>
</div>
<div class="div2">
<h3><a name="actioninwsdl" id="actioninwsdl"></a>4.4 Action</h3>
<p>WS-Addressing defines two mechanisms to associate a value of the
[action] property with input, output and fault elements within a
WSDL description: explicit and defaulting. Explicit association is
described in section <a href="#explicitaction"><strong>4.4.1
Explicit Association</strong></a>; action defaulting (where a
unique value for the [action] property is automatically generated)
is described in section <a href="#defactionwsdl11"><strong>4.4.4
Default Action Pattern for WSDL 1.1</strong></a> for WSDL 1.1 and
section <a href="#defactionwsdl20"><strong>4.4.2 Default Action
Pattern for WSDL 2.0</strong></a> for WSDL 2.0.</p>
<p>Ensuring that there is sufficient information within a message
to distinguish which WSDL operation it is associated with is
specified as a best practice in WSDL 2.0<cite><a href=
"#WSDL20">WSDL 2.0</a></cite>. The [action] property provides a
mechanism to fulfill that best practice.</p>
<div class="div3">
<h4><a name="explicitaction" id="explicitaction"></a>4.4.1 Explicit
Association</h4>
<p>WS-Addressing defines a global attribute, wsam:Action, that can
be used to explicitly define the value of the [action] property for
messages in a WSDL description. The type of the attribute is
xs:anyURI and it is used as an extension on the WSDL input, output
and fault elements. A SOAP binding can specify SOAPAction values
for the input messages of operations. In the absence of a
wsam:Action attribute on a WSDL input element where a non-empty
SOAPAction value is specified, the value of the [action] property
for the input message is the value of the SOAPAction specified. If
the wsam:Action attribute is absent, and SOAPAction is not
specified, or is empty, then the default pattern is used. Note that
the SOAPAction value is not required to be an absolute IRI, but the
[action] property is required to be an absolute IRI; if
WS-Addressing is required (the wsam:Addressing assertion is
present), wsam:Action is not specified, and the SOAPAction value is
not empty or an absolute IRI, then the document MUST be considered
invalid. Web Services Addressing 1.0 - SOAP Binding[<cite><a href=
"#WSADDR-SOAP">WS-Addressing SOAP Binding</a></cite>] specifies
restrictions on the relationship between the values of [action] and
SOAPAction for SOAP 1.1 and SOAP 1.2.</p>
<p>The inclusion of wsam:Action without the inclusion of the
wsam:Addressing assertion has no normative intent and is only
informational. In other words, the inclusion of wsam:Action
attributes in WSDL alone does not imply a requirement on clients to
use Message Addressing Properties in messages it sends to the
service. A client, however, MAY include Message Addressing
Properties in the messages it sends, either on its own initiative
or as described by other elements of the service contract,
regardless of the presence or absence of the wsam:Addressing
assertion. Other specifications defining the value of [action] are
under no constraint to be consistent with wsam:Action.</p>
<p>For example consider the following WSDL excerpt:</p>
<div class="exampleOuter">
<p style="text-align: left" class="exampleHead"><em><span>Example
4-1.</span> Explicit specification of wsa:Action value in a WSDL
2.0 description.</em></p>
<div class="exampleInner">
<pre xml:space="preserve">
&lt;description targetNamespace="http://greath.example.com/2004/schemas/resSvc" ...&gt;
...
&lt;interface name="reservationInterface"&gt;
&lt;operation name="opCheckAvailability" pattern="http://www.w3.org/ns/wsdl/in-out"&gt;
&lt;input element="tns:checkAvailability" messageLabel="In"
wsam:Action="http://greath.example.com/2004/wsdl/resSvc/opCheckAvailability"/&gt;
&lt;output element="tns:checkAvailabilityResponse" messageLabel="Out"
wsam:Action="http://greath.example.com/2004/wsdl/resSvc/opCheckAvailabilityResponse"/&gt;
&lt;/operation&gt;
&lt;/interface&gt;
...
&lt;/description&gt;
</pre></div>
</div>
<p>The action for the input of the opCheckAvailability operation
within the reservationInterface is explicitly defined to be
http://greath.example.com/2004/wsdl/resSvc/opCheckAvailability. The
action for the output of this same operation is
http://greath.example.com/2004/wsdl/resSvc/opCheckAvailabilityResponse.</p>
<div class="exampleOuter">
<p style="text-align: left" class="exampleHead"><em><span>Example
4-2.</span> Explicit specification of wsa:Action value in a WSDL
1.1 description.</em></p>
<div class="exampleInner">
<pre xml:space="preserve">
&lt;definitions targetNamespace="http://greath.example.com/2004/schemas/resSvc" ...&gt;
...
&lt;portType name="reservationInterface"&gt;
&lt;operation name="opCheckAvailability"&gt;
&lt;input message="tns:checkAvailability"
wsam:Action="http://greath.example.com/2004/wsdl/resSvc/opCheckAvailability"/&gt;
&lt;output message="tns:checkAvailabilityResponse"
wsam:Action="http://greath.example.com/2004/wsdl/resSvc/opCheckAvailabilityResponse"/&gt;
&lt;/operation&gt;
&lt;/portType&gt;
...
&lt;/definitions&gt;
</pre></div>
</div>
<p>The action for the input of the opCheckAvailability operation
within the reservationInterface port type is explicitly defined to
be http://greath.example.com/2004/wsdl/resSvc/opCheckAvailability.
The action for the output of this same operation is
http://greath.example.com/2004/wsdl/resSvc/opCheckAvailabilityResponse.</p>
</div>
<div class="div3">
<h4><a name="defactionwsdl20" id="defactionwsdl20"></a>4.4.2
Default Action Pattern for WSDL 2.0</h4>
<p>In the absence of an explicitly specified value for the [action]
property (see section <a href="#explicitaction"><strong>4.4.1
Explicit Association</strong></a>), the following pattern is used
in WSDL 2.0 documents to construct a default action for inputs and
outputs. The general form of an action URI is as follows:</p>
<div class="exampleOuter">
<p style="text-align: left" class="exampleHead"><em><span>Example
4-3.</span> Structure of defaulted wsa:Action IRI in WSDL
2.0.</em></p>
<div class="exampleInner">
<pre xml:space="preserve">
[target namespace][delimiter][interface name][delimiter][operation name][direction token]
</pre></div>
</div>
<p>For fault messages, the general form of an action IRI is as
follows:</p>
<div class="exampleOuter">
<p style="text-align: left" class="exampleHead"><em><span>Example
4-4.</span> Structure of default wsa:Action IRI for faults</em></p>
<div class="exampleInner">
<pre xml:space="preserve">
[target namespace][delimiter][interface name][delimiter][operation name][direction token][delimiter][fault name]
</pre></div>
</div>
<p>Where:</p>
<dl>
<dt class="label">[delimiter]</dt>
<dd>
<p>is ":" when the [target namespace] is a URN, otherwise "/". Note
that for IRI schemes other than URNs which aren't path-based (i.e.
those that outlaw the "/" character), the default action value
might not conform to the rules of the IRI scheme. Authors are
advised to specify explicit values in the WSDL in this case.</p>
</dd>
<dt class="label">[target namespace]</dt>
<dd>
<p>is the {target namespace} of the interface. If [target
namespace] ends with a "/" an additional "/" is not added.</p>
</dd>
<dt class="label">[interface name]</dt>
<dd>
<p>is the {name} of the interface.</p>
</dd>
<dt class="label">[operation name]</dt>
<dd>
<p>is the {name} of the operation.</p>
</dd>
<dt class="label">[fault name]</dt>
<dd>
<p>is the {name} of the fault.</p>
</dd>
<dt class="label">[direction token]</dt>
<dd>
<ul>
<li>
<p>Empty ("") where the operation's {message exchange pattern} is
"http://www.w3.org/ns/wsdl/in-only",
"http://www.w3.org/ns/wsdl/robust-in-only",
"http://www.w3.org/ns/wsdl/out-only", or
"http://www.w3.org/ns/wsdl/robust-out-only".</p>
</li>
<li>
<p>"Request" where the operation's {message exchange pattern} is
"http://www.w3.org/ns/wsdl/in-out" or
"http://www.w3.org/ns/wsdl/in-opt-out" and the message reference's
{message label} = 'In'.</p>
</li>
<li>
<p>"Solicit" where the operation's {message exchange pattern} is
"http://www.w3.org/ns/wsdl/out-in" or
"http://www.w3.org/ns/wsdl/out-opt-in" and the message reference's
{message label} = 'Out'.</p>
</li>
<li>
<p>"Response" where the operation's {message exchange pattern} is
"http://www.w3.org/ns/wsdl/in-out" or
"http://www.w3.org/ns/wsdl/in-opt-out" and the message reference's
{message label} = 'Out'.</p>
</li>
<li>
<p>"Response" where the operation's {message exchange pattern} is
"http://www.w3.org/ns/wsdl/out-in", or
"http://www.w3.org/ns/wsdl/out-opt-in" and the message reference's
{message label} = 'In'.</p>
</li>
<li>
<p>{message label} where the {message exchange pattern} is not one
of the MEP IRIs defined in WSDL 2.0 Part 2.</p>
</li>
</ul>
</dd>
</dl>
<p>For example consider the following WSDL excerpt:</p>
<div class="exampleOuter">
<p style="text-align: left" class="exampleHead"><em><span>Example
4-5.</span> Example WSDL without explicit wsa:Action
values.</em></p>
<div class="exampleInner">
<pre xml:space="preserve">
&lt;description targetNamespace="http://greath.example.com/2004/wsdl/resSvc" ...&gt;
...
&lt;interface name="reservationInterface"&gt;
&lt;operation name="opCheckAvailability" pattern="http://www.w3.org/ns/wsdl/in-out"&gt;
&lt;input element="tns:checkAvailability" messageLabel="In"/&gt;
&lt;output element="tns:checkAvailabilityResponse" messageLabel="Out"/&gt;
&lt;/operation&gt;
&lt;/interface&gt;
...
&lt;/definitions&gt;
</pre></div>
<p>[targetNamespace] =
http://greath.example.com/2004/wsdl/resSvc</p>
<p>[interface name] = reservationInterface</p>
<p>[operation name] = opCheckAvailability</p>
<p>[direction token] for input is Request</p>
<p>[direction token] for output is Response</p>
<p>Applying the patterns above with these values we have:</p>
<p>input action =
http://greath.example.com/2004/wsdl/resSvc/reservationInterface/opCheckAvailabilityRequest</p>
<p>output action =
http://greath.example.com/2004/wsdl/resSvc/reservationInterface/opCheckAvailabilityResponse</p>
<p>fault action for a fault named AvailabilityNotAvailableFault =
http://greath.example.com/2004/wsdl/resSvc/reservationInterface/opCheckAvailabilityResponse/AvailabilityNotAvailableFault</p>
</div>
</div>
<div class="div3">
<h4><a name="id2274552" id="id2274552"></a>4.4.3 WSDL 2.0 Component
Model Changes</h4>
<p>Use of WS-Addressing adds the following REQUIRED properties to
the WSDL 2.0 component model:</p>
<ul>
<li>
<p>A property of the Interface Message Reference and Interface
Operation InFault/OutFault components named {action}. The property
is of type xs:anyURI. The property value is either explicitly
specified, as described in section <a href=
"#explicitaction"><strong>4.4.1 Explicit Association</strong></a>,
or the default value computed following the rules from section
<a href="#defactionwsdl20"><strong>4.4.2 Default Action Pattern for
WSDL 2.0</strong></a>.</p>
</li>
</ul>
</div>
<div class="div3">
<h4><a name="defactionwsdl11" id="defactionwsdl11"></a>4.4.4
Default Action Pattern for WSDL 1.1</h4>
<p>A default pattern is also defined for backwards compatibility
with WSDL 1.1. In the absence of an explicitly specified value for
the [action] property (see section <a href=
"#explicitaction"><strong>4.4.1 Explicit Association</strong></a>),
the following pattern is used to construct a default action for
inputs and outputs. The general form of an action IRI is as
follows:</p>
<div class="exampleOuter">
<p style="text-align: left" class="exampleHead"><em><span>Example
4-6.</span> Structure of defaulted wsa:Action IRI.</em></p>
<div class="exampleInner">
<pre xml:space="preserve">
[target namespace][delimiter][port type name][delimiter][input|output name]
</pre></div>
</div>
<p>For fault messages, the general form of an action IRI is as
follows:</p>
<div class="exampleOuter">
<p style="text-align: left" class="exampleHead"><em><span>Example
4-7.</span> Structure of default wsa:Action IRI for faults</em></p>
<div class="exampleInner">
<pre xml:space="preserve">
[target namespace][delimiter][port type name][delimiter][operation name][delimiter]Fault[delimiter][fault name]
</pre></div>
</div>
<p>Where:</p>
<dl>
<dt class="label">[delimiter]</dt>
<dd>
<p>is ":" when the [target namespace] is a URN, otherwise "/". Note
that for IRI schemes other than URNs which aren't path-based (i.e.
those that outlaw the "/" character), the default action value
might not conform to the rules of the IRI scheme. Authors are
advised to specify explicit values in the WSDL in this case.</p>
</dd>
<dt class="label">"Fault"</dt>
<dd>
<p>is a literal character string to be included in the action.</p>
</dd>
<dt class="label">[target namespace]</dt>
<dd>
<p>is the target namespace (/definition/@targetNamespace). If
[target namespace] ends with a "/" an additional "/" is not
added.</p>
</dd>
<dt class="label">[port type name]</dt>
<dd>
<p>is the name of the port type (/definition/portType/@name).</p>
</dd>
<dt class="label">[operation name]</dt>
<dd>
<p>is the {name} of the operation.</p>
</dd>
<dt class="label">[input|output name]</dt>
<dd>
<p>is the name of the element as defined in <a href=
"http://www.w3.org/TR/wsdl#_names">Section 2.4.5</a> of WSDL
1.1.</p>
</dd>
<dt class="label">[fault name]</dt>
<dd>
<p>is the name of the fault
(/definition/porttype/operation/fault/@name).</p>
</dd>
</dl>
<p>For example consider the following WSDL excerpt:</p>
<div class="exampleOuter">
<p style="text-align: left" class="exampleHead"><em><span>Example
4-8.</span> Example WSDL without explicit wsa:Action values with
explicit message names.</em></p>
<div class="exampleInner">
<pre xml:space="preserve">
&lt;definitions targetNamespace="http://greath.example.com/2004/wsdl/resSvc" ...&gt;
...
&lt;portType name="reservationInterface"&gt;
&lt;operation name="opCheckAvailability"&gt;
&lt;input message="tns:checkAvailability" name="CheckAvailability"/&gt;
&lt;output message="tns:checkAvailabilityResponse" name="Availability"/&gt;
&lt;fault message="tns:InvalidDate" name="InvalidDate"/&gt;
&lt;/operation&gt;
&lt;/portType&gt;
...
&lt;/definitions&gt;
</pre></div>
<p>[targetNamespace] =
http://greath.example.com/2004/wsdl/resSvc</p>
<p>[port type name] = reservationInterface</p>
<p>[input name] = CheckAvailability</p>
<p>[output name] = CheckAvailabilityResponse</p>
<p>[fault name] = InvalidDate</p>
<p>Applying the pattern above with these values we have:</p>
<p>input action =
http://greath.example.com/2004/wsdl/resSvc/reservationInterface/CheckAvailability</p>
<p>output action =
http://greath.example.com/2004/wsdl/resSvc/reservationInterface/Availability</p>
<p>fault action =
http://greath.example.com/2004/wsdl/resSvc/reservationInterface/opCheckAvailability/Fault/InvalidDate</p>
</div>
<p>WSDL defines rules for a default input or output name if the
name attribute is not present. Consider the following example:</p>
<div class="exampleOuter">
<p style="text-align: left" class="exampleHead"><em><span>Example
4-9.</span> Example WSDL without explicit wsa:Action values or
explicit message names.</em></p>
<div class="exampleInner">
<pre xml:space="preserve">
&lt;definitions targetNamespace="http://greath.example.com/2004/wsdl/resSvc" ...&gt;
...
&lt;portType name="reservationInterface"&gt;
&lt;operation name="opCheckAvailability"&gt;
&lt;input message="tns:checkAvailability"/&gt;
&lt;output message="tns:checkAvailabilityResponse"/&gt;
&lt;/operation&gt;
&lt;/portType&gt;
...
&lt;/definitions&gt;
</pre></div>
<p>[targetNamespace] =
http://greath.example.com/2004/wsdl/resSvc</p>
<p>[port type name] = reservationInterface</p>
<p>According to the rules defined in <a href=
"http://www.w3.org/TR/wsdl#_names">Section 2.4.5</a> of WSDL 1.1,
if the name attribute is absent for the input of a request response
operation the default value is the name of the operation with
"Request" appended.</p>
<p>[input name] = opCheckAvailabilityRequest</p>
<p>Likewise, the output defaults to the operation name with
"Response" appended.</p>
<p>[output name] = opCheckAvailabilityResponse</p>
<p>Applying the pattern above with these values we have:</p>
<p>input action =
http://greath.example.com/2004/wsdl/resSvc/reservationInterface/opCheckAvailabilityRequest</p>
<p>output action =
http://greath.example.com/2004/wsdl/resSvc/reservationInterface/opCheckAvailabilityResponse</p>
</div>
</div>
</div>
</div>
<div class="div1">
<h2><a name="WSDLMEPS" id="WSDLMEPS"></a>5. WS-Addressing and WSDL
Message Exchange Patterns</h2>
<p>This section describes which of the core message properties are
mandatory for messages in the various MEPs defined by WSDL.</p>
<div class="div2">
<h3><a name="WSDL11MEPS" id="WSDL11MEPS"></a>5.1 WSDL 1.1 Message
Exchange Patterns</h3>
<p>For backwards compatibility, this section describes which of the
core message properties are mandatory for messages in the various
MEPs defined by WSDL 1.1.</p>
<div class="div3">
<h4><a name="wsdl11oneway" id="wsdl11oneway"></a>5.1.1 One-way</h4>
<p>This is a straightforward one-way message. No responses are
expected but related messages could be sent as part of other
message exchanges.</p>
<table border="1">
<caption>Table 5-1. Message addressing properties for one way
message.</caption>
<tbody>
<tr>
<th align="left" rowspan="1" colspan="1">Property</th>
<th align="center" rowspan="1" colspan="1">Mandatory</th>
<th align="left" rowspan="1" colspan="1">Description</th>
</tr>
<tr>
<td rowspan="1" colspan="1">[destination]</td>
<td align="center" rowspan="1" colspan="1">Y</td>
<td rowspan="1" colspan="1">Provides the address of the intended
receiver of this message</td>
</tr>
<tr>
<td rowspan="1" colspan="1">[action]</td>
<td align="center" rowspan="1" colspan="1">Y</td>
<td rowspan="1" colspan="1">Identifies the semantics implied by
this message</td>
</tr>
<tr>
<td rowspan="1" colspan="1">[source endpoint]</td>
<td align="center" rowspan="1" colspan="1">N</td>
<td rowspan="1" colspan="1">Message origin. Unused in this MEP, but
could be included to facilitate longer running message
exchanges.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">[reply endpoint]</td>
<td align="center" rowspan="1" colspan="1">N</td>
<td rowspan="1" colspan="1">Intended receiver for replies to this
message. Unused in this MEP, but could be included to facilitate
longer running message exchanges.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">[fault endpoint]</td>
<td align="center" rowspan="1" colspan="1">N</td>
<td rowspan="1" colspan="1">Intended receiver for faults related to
this message. Unused in this MEP, but could be included to
facilitate longer running message exchanges.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">[message id]</td>
<td align="center" rowspan="1" colspan="1">N</td>
<td rowspan="1" colspan="1">Unique identifier for this message.
Unused in this MEP, but may be included to facilitate longer
running message exchanges.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">[relationship]</td>
<td align="center" rowspan="1" colspan="1">N</td>
<td rowspan="1" colspan="1">Indicates relationship to a prior
message. Unused in this MEP, but could be included to facilitate
longer running message exchanges.</td>
</tr>
</tbody>
</table>
<br /></div>
<div class="div3">
<h4><a name="wsdl11requestresponse" id=
"wsdl11requestresponse"></a>5.1.2 Request-Response</h4>
<p>This is request-response. A reply is expected hence mandating
[reply endpoint] in the request message. The response message might
be a fault.</p>
<table border="1">
<caption>Table 5-2. Message addressing properties for request
message.</caption>
<tbody>
<tr>
<th align="left" rowspan="1" colspan="1">Property</th>
<th align="center" rowspan="1" colspan="1">Mandatory</th>
<th align="left" rowspan="1" colspan="1">Description</th>
</tr>
<tr>
<td rowspan="1" colspan="1">[destination]</td>
<td align="center" rowspan="1" colspan="1">Y</td>
<td rowspan="1" colspan="1">Provides the address of the intended
receiver of this message</td>
</tr>
<tr>
<td rowspan="1" colspan="1">[action]</td>
<td align="center" rowspan="1" colspan="1">Y</td>
<td rowspan="1" colspan="1">Identifies the semantics implied by
this message</td>
</tr>
<tr>
<td rowspan="1" colspan="1">[source endpoint]</td>
<td align="center" rowspan="1" colspan="1">N</td>
<td rowspan="1" colspan="1">Message origin. Unused in this MEP, but
could be included to facilitate longer running message
exchanges.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">[reply endpoint]</td>
<td align="center" rowspan="1" colspan="1">Y</td>
<td rowspan="1" colspan="1">Intended receiver for the reply to this
message.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">[fault endpoint]</td>
<td align="center" rowspan="1" colspan="1">N</td>
<td rowspan="1" colspan="1">Intended receiver for faults related to
this message. May be included to direct fault messages to a
different endpoint than [reply endpoint].</td>
</tr>
<tr>
<td rowspan="1" colspan="1">[message id]</td>
<td align="center" rowspan="1" colspan="1">Y</td>
<td rowspan="1" colspan="1">Unique identifier for this message.
Used in the [relationship] property of the reply message.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">[relationship]</td>
<td align="center" rowspan="1" colspan="1">N</td>
<td rowspan="1" colspan="1">Indicates relationship to a prior
message. Unused in this MEP, but could be included to facilitate
longer running message exchanges.</td>
</tr>
</tbody>
</table>
<br />
<table border="1">
<caption>Table 5-3. Message addressing properties for response
message.</caption>
<tbody>
<tr>
<th align="left" rowspan="1" colspan="1">Property</th>
<th align="center" rowspan="1" colspan="1">Mandatory</th>
<th align="left" rowspan="1" colspan="1">Description</th>
</tr>
<tr>
<td rowspan="1" colspan="1">[destination]</td>
<td align="center" rowspan="1" colspan="1">Y</td>
<td rowspan="1" colspan="1">Provides the address of the intended
receiver of this message</td>
</tr>
<tr>
<td rowspan="1" colspan="1">[action]</td>
<td align="center" rowspan="1" colspan="1">Y</td>
<td rowspan="1" colspan="1">Identifies the semantics implied by
this message</td>
</tr>
<tr>
<td rowspan="1" colspan="1">[source endpoint]</td>
<td align="center" rowspan="1" colspan="1">N</td>
<td rowspan="1" colspan="1">Message origin. Unused in this MEP, but
could be included to facilitate longer running message
exchanges.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">[reply endpoint]</td>
<td align="center" rowspan="1" colspan="1">N</td>
<td rowspan="1" colspan="1">Intended receiver for replies to this
message. Unused in this MEP, but could be included to facilitate
longer running message exchanges.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">[fault endpoint]</td>
<td align="center" rowspan="1" colspan="1">N</td>
<td rowspan="1" colspan="1">Intended receiver for faults related to
this message. Unused in this MEP, but could be included to
facilitate longer running message exchanges.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">[message id]</td>
<td align="center" rowspan="1" colspan="1">N</td>
<td rowspan="1" colspan="1">Unique identifier for this message.
Unused in this MEP, but may be included to facilitate longer
running message exchanges.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">[relationship]</td>
<td align="center" rowspan="1" colspan="1">Y</td>
<td rowspan="1" colspan="1">Indicates that this message is a reply
to the request message using the request message [message id] value
and the predefined
<code>http://www.w3.org/2005/08/addressing/reply</code> IRI.</td>
</tr>
</tbody>
</table>
<br /></div>
<div class="div3">
<h4><a name="wsdl11notification" id="wsdl11notification"></a>5.1.3
Notification</h4>
<p>From the WS-Addressing perspective this MEP is the same as
One-way. The properties defined in <a href=
"#wsdl11oneway"><strong>5.1.1 One-way</strong></a> apply to this
MEP also.</p>
</div>
<div class="div3">
<h4><a name="wsdl11solicitresponse" id=
"wsdl11solicitresponse"></a>5.1.4 Solicit-response</h4>
<p>From the WS-Addressing perspective this MEP is the same as
Request-response. The properties defined in <a href=
"#wsdl11requestresponse"><strong>5.1.2
Request-Response</strong></a> apply to this MEP also.</p>
</div>
</div>
<div class="div2">
<h3><a name="WSDL20MEPS" id="WSDL20MEPS"></a>5.2 WSDL 2.0 Message
Exchange Patterns</h3>
<p>This section describes which of the core message properties are
mandatory for messages in the various MEPs defined by WSDL 2.0
[<cite><a href="#WSDL20Adj">WSDL 2.0 Adjuncts</a></cite>].</p>
<div class="div3">
<h4><a name="wsdl20inonly" id="wsdl20inonly"></a>5.2.1 In-only</h4>
<p>This is a straightforward one-way message. No responses are
expected but related messages could be sent as part of other
message exchanges.</p>
<table border="1">
<caption>Table 5-4. Message addressing properties for in
message.</caption>
<tbody>
<tr>
<th align="left" rowspan="1" colspan="1">Property</th>
<th align="center" rowspan="1" colspan="1">Mandatory</th>
<th align="left" rowspan="1" colspan="1">Description</th>
</tr>
<tr>
<td rowspan="1" colspan="1">[destination]</td>
<td align="center" rowspan="1" colspan="1">Y</td>
<td rowspan="1" colspan="1">Provides the address of the intended
receiver of this message</td>
</tr>
<tr>
<td rowspan="1" colspan="1">[action]</td>
<td align="center" rowspan="1" colspan="1">Y</td>
<td rowspan="1" colspan="1">Identifies the semantics implied by
this message</td>
</tr>
<tr>
<td rowspan="1" colspan="1">[source endpoint]</td>
<td align="center" rowspan="1" colspan="1">N</td>
<td rowspan="1" colspan="1">Message origin. Unused in this MEP, but
could be included to facilitate longer running message
exchanges.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">[reply endpoint]</td>
<td align="center" rowspan="1" colspan="1">N</td>
<td rowspan="1" colspan="1">Intended receiver for replies to this
message. Unused in this MEP, but could be included to facilitate
longer running message exchanges.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">[fault endpoint]</td>
<td align="center" rowspan="1" colspan="1">N</td>
<td rowspan="1" colspan="1">Intended receiver for faults related to
this message. Unused in this MEP, but could be included to
facilitate longer running message exchanges.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">[message id]</td>
<td align="center" rowspan="1" colspan="1">N</td>
<td rowspan="1" colspan="1">Unique identifier for this message.
Unused in this MEP, but may be included to facilitate longer
running message exchanges.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">[relationship]</td>
<td align="center" rowspan="1" colspan="1">N</td>
<td rowspan="1" colspan="1">Indicates relationship to a prior
message. Unused in this MEP, but could be included to facilitate
longer running message exchanges.</td>
</tr>
</tbody>
</table>
<br /></div>
<div class="div3">
<h4><a name="wsdl20robustinonly" id="wsdl20robustinonly"></a>5.2.2
Robust In-only</h4>
<p>This one-way MEP allows fault messages. The [message id]
property is needed in the initial message in order to be able to
correlate any fault with that message.</p>
<table border="1">
<caption>Table 5-5. Message addressing properties for in
message.</caption>
<tbody>
<tr>
<th align="left" rowspan="1" colspan="1">Property</th>
<th align="center" rowspan="1" colspan="1">Mandatory</th>
<th align="left" rowspan="1" colspan="1">Description</th>
</tr>
<tr>
<td rowspan="1" colspan="1">[destination]</td>
<td align="center" rowspan="1" colspan="1">Y</td>
<td rowspan="1" colspan="1">Provides the address of the intended
receiver of this message</td>
</tr>
<tr>
<td rowspan="1" colspan="1">[action]</td>
<td align="center" rowspan="1" colspan="1">Y</td>
<td rowspan="1" colspan="1">Identifies the semantics implied by
this message</td>
</tr>
<tr>
<td rowspan="1" colspan="1">[source endpoint]</td>
<td align="center" rowspan="1" colspan="1">N</td>
<td rowspan="1" colspan="1">Message origin. Unused in this MEP, but
could be included to facilitate longer running message
exchanges.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">[reply endpoint]</td>
<td align="center" rowspan="1" colspan="1">N*</td>
<td rowspan="1" colspan="1">Intended receiver for replies to this
message. Unused in this MEP, but could be included to facilitate
longer running message exchanges.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">[fault endpoint]</td>
<td align="center" rowspan="1" colspan="1">N*</td>
<td rowspan="1" colspan="1">Intended receiver for faults related to
this message.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">[message id]</td>
<td align="center" rowspan="1" colspan="1">Y</td>
<td rowspan="1" colspan="1">Unique identifier for this message.
Used in the [relationship] property of any resulting fault
message.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">[relationship]</td>
<td align="center" rowspan="1" colspan="1">N</td>
<td rowspan="1" colspan="1">Indicates relationship to a prior
message. Unused in this MEP, but could be included to facilitate
longer running message exchanges.</td>
</tr>
</tbody>
</table>
<br />
<p>* Note that at least one of [fault endpoint] or [reply endpoint]
is required for this MEP, so that a fault can be sent if
necessary.</p>
<table border="1">
<caption>Table 5-6. Message addressing properties for fault
message.</caption>
<tbody>
<tr>
<th align="left" rowspan="1" colspan="1">Property</th>
<th align="center" rowspan="1" colspan="1">Mandatory</th>
<th align="left" rowspan="1" colspan="1">Description</th>
</tr>
<tr>
<td rowspan="1" colspan="1">[destination]</td>
<td align="center" rowspan="1" colspan="1">Y</td>
<td rowspan="1" colspan="1">Provides the address of the intended
receiver of this message</td>
</tr>
<tr>
<td rowspan="1" colspan="1">[action]</td>
<td align="center" rowspan="1" colspan="1">Y</td>
<td rowspan="1" colspan="1">Identifies the semantics implied by
this message</td>
</tr>
<tr>
<td rowspan="1" colspan="1">[source endpoint]</td>
<td align="center" rowspan="1" colspan="1">N</td>
<td rowspan="1" colspan="1">Message origin. Unused in this MEP, but
could be included to facilitate longer running message
exchanges.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">[reply endpoint]</td>
<td align="center" rowspan="1" colspan="1">N</td>
<td rowspan="1" colspan="1">Intended receiver for replies to this
message. Unused in this MEP, but could be included to facilitate
longer running message exchanges.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">[fault endpoint]</td>
<td align="center" rowspan="1" colspan="1">N</td>
<td rowspan="1" colspan="1">Intended receiver for faults related to
this message. Unused in this MEP, but could be included to
facilitate longer running message exchanges.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">[message id]</td>
<td align="center" rowspan="1" colspan="1">N</td>
<td rowspan="1" colspan="1">Unique identifier for this message.
Unused in this MEP, but may be included to facilitate longer
running message exchanges.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">[relationship]</td>
<td align="center" rowspan="1" colspan="1">Y</td>
<td rowspan="1" colspan="1">Indicates that this message is a
response to the in message using the in message [message id] value
and the predefined
<code>http://www.w3.org/2005/08/addressing/reply</code> IRI.</td>
</tr>
</tbody>
</table>
<br /></div>
<div class="div3">
<h4><a name="wsdl20inout" id="wsdl20inout"></a>5.2.3 In-out</h4>
<p>This is a two-way MEP. A reply is expected hence mandating
[reply endpoint] in the request message. The response message might
be a fault.</p>
<table border="1">
<caption>Table 5-7. Message addressing properties for in
message.</caption>
<tbody>
<tr>
<th align="left" rowspan="1" colspan="1">Property</th>
<th align="center" rowspan="1" colspan="1">Mandatory</th>
<th align="left" rowspan="1" colspan="1">Description</th>
</tr>
<tr>
<td rowspan="1" colspan="1">[destination]</td>
<td align="center" rowspan="1" colspan="1">Y</td>
<td rowspan="1" colspan="1">Provides the address of the intended
receiver of this message</td>
</tr>
<tr>
<td rowspan="1" colspan="1">[action]</td>
<td align="center" rowspan="1" colspan="1">Y</td>
<td rowspan="1" colspan="1">Identifies the semantics implied by
this message</td>
</tr>
<tr>
<td rowspan="1" colspan="1">[source endpoint]</td>
<td align="center" rowspan="1" colspan="1">N</td>
<td rowspan="1" colspan="1">Message origin. Unused in this MEP, but
could be included to facilitate longer running message
exchanges.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">[reply endpoint]</td>
<td align="center" rowspan="1" colspan="1">Y</td>
<td rowspan="1" colspan="1">Intended receiver for the reply to this
message.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">[fault endpoint]</td>
<td align="center" rowspan="1" colspan="1">N</td>
<td rowspan="1" colspan="1">Intended receiver for faults related to
this message. May be included to direct fault messages to a
different endpoint than [reply endpoint].</td>
</tr>
<tr>
<td rowspan="1" colspan="1">[message id]</td>
<td align="center" rowspan="1" colspan="1">Y</td>
<td rowspan="1" colspan="1">Unique identifier for this message.
Used in the [relationship] property of the out message.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">[relationship]</td>
<td align="center" rowspan="1" colspan="1">N</td>
<td rowspan="1" colspan="1">Indicates relationship to a prior
message. Unused in this MEP, but could be included to facilitate
longer running message exchanges.</td>
</tr>
</tbody>
</table>
<br />
<table border="1">
<caption>Table 5-8. Message addressing properties for out
message.</caption>
<tbody>
<tr>
<th align="left" rowspan="1" colspan="1">Property</th>
<th align="center" rowspan="1" colspan="1">Mandatory</th>
<th align="left" rowspan="1" colspan="1">Description</th>
</tr>
<tr>
<td rowspan="1" colspan="1">[destination]</td>
<td align="center" rowspan="1" colspan="1">Y</td>
<td rowspan="1" colspan="1">Provides the address of the intended
receiver of this message</td>
</tr>
<tr>
<td rowspan="1" colspan="1">[action]</td>
<td align="center" rowspan="1" colspan="1">Y</td>
<td rowspan="1" colspan="1">Identifies the semantics implied by
this message</td>
</tr>
<tr>
<td rowspan="1" colspan="1">[source endpoint]</td>
<td align="center" rowspan="1" colspan="1">N</td>
<td rowspan="1" colspan="1">Message origin. Unused in this MEP, but
could be included to facilitate longer running message
exchanges.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">[reply endpoint]</td>
<td align="center" rowspan="1" colspan="1">N</td>
<td rowspan="1" colspan="1">Intended receiver for replies to this
message. Unused in this MEP, but could be included to facilitate
longer running message exchanges.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">[fault endpoint]</td>
<td align="center" rowspan="1" colspan="1">N</td>
<td rowspan="1" colspan="1">Intended receiver for faults related to
this message. Unused in this MEP, but could be included to
facilitate longer running message exchanges.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">[message id]</td>
<td align="center" rowspan="1" colspan="1">N</td>
<td rowspan="1" colspan="1">Unique identifier for this message.
Unused in this MEP, but may be included to facilitate longer
running message exchanges.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">[relationship]</td>
<td align="center" rowspan="1" colspan="1">Y</td>
<td rowspan="1" colspan="1">Indicates that this message is a
response to the in message using the in message [message id] value
and the predefined
<code>http://www.w3.org/2005/08/addressing/reply</code> IRI.</td>
</tr>
</tbody>
</table>
<br /></div>
<div class="div3">
<h4><a name="wsdl20inoptionalout" id=
"wsdl20inoptionalout"></a>5.2.4 In-optional-out</h4>
<p>This MEP differs from the In-out MEP in that the subsequent
message is optional. This difference doesn't affect the message
properties so the properties defined in <a href=
"#wsdl20inout"><strong>5.2.3 In-out</strong></a> apply to this MEP
also</p>
</div>
<div class="div3">
<h4><a name="wsdl20outonly" id="wsdl20outonly"></a>5.2.5
Out-only</h4>
<p>From the WS-Addressing perspective this MEP is the same as
In-only. The properties defined in <a href=
"#wsdl20inonly"><strong>5.2.1 In-only</strong></a> apply to this
MEP also.</p>
</div>
<div class="div3">
<h4><a name="wsdl20robustoutonly" id=
"wsdl20robustoutonly"></a>5.2.6 Robust Out-only</h4>
<p>From the WS-Addressing perspective this MEP is the same as
Robust In-only. The properties defined in <a href=
"#wsdl20robustinonly"><strong>5.2.2 Robust In-only</strong></a>
apply to this MEP also.</p>
</div>
<div class="div3">
<h4><a name="wsdl20outin" id="wsdl20outin"></a>5.2.7 Out-in</h4>
<p>From the WS-Addressing perspective this MEP is the same as
In-out. The properties defined in <a href=
"#wsdl20inout"><strong>5.2.3 In-out</strong></a> apply to this MEP
also.</p>
</div>
<div class="div3">
<h4><a name="wsdl20outoptionalin" id=
"wsdl20outoptionalin"></a>5.2.8 Out-optional-in</h4>
<p>This MEP differs from the Out-in MEP in that the subsequent
message is optional. This difference doesn't affect the message
properties so the properties defined in <a href=
"#wsdl20inout"><strong>5.2.3 In-out</strong></a> apply to this MEP
also</p>
</div>
</div>
</div>
<div class="div1">
<h2><a name="conformance" id="conformance"></a>6. Conformance</h2>
<p>An endpoint reference whose wsa:Metadata element has among its
children the elements defined in <a href=
"#refmetadatfromepr"><strong>2.1 Referencing WSDL Metadata from an
EPR</strong></a> conforms to this specification if it obeys the
structural constraints defined in that section.</p>
<p>A WSDL description conforms to this specification when it
incorporates directly or indirectly the <a href=
"#wspolicyassertions"><strong>3.1 WS-Policy Assertions</strong></a>
marker, and obeys the structural constraints defined in section
<a href="#indicatinguse"><strong>3. Indicating Use of
WS-Addressing</strong></a> appropriate to that marker, and those
defined in section <a href="#actioninwsdl"><strong>4.4
Action</strong></a>.</p>
<p>An endpoint conforms to this specification if it has a
conformant WSDL description associated with it, and receives and
emits messages in accordance with the constraints defined in
sections <a href="#mapvaluesinwsdl"><strong>4. Specifying Message
Addressing Properties in WSDL</strong></a> and <a href=
"#WSDLMEPS"><strong>5. WS-Addressing and WSDL Message Exchange
Patterns</strong></a>.</p>
</div>
<div class="div1">
<h2><a name="references" id="references"></a>7. References</h2>
<div class="div2">
<h3><a name="id2278438" id="id2278438"></a>7.1 Normative</h3>
<dl>
<dt class="label"><a name="RFC2119" id="RFC2119"></a>[IETF RFC
2119]</dt>
<dd><cite><a href="http://www.ietf.org/rfc/rfc2119.txt">Key words
for use in RFCs to Indicate Requirement Levels</a></cite>, S.
Bradner, Author. Internet Engineering Task Force, March 1997.
Available at http://www.ietf.org/rfc/rfc2119.txt</dd>
<dt class="label"><a name="RFC3987" id="RFC3987"></a>[IETF RFC
3987]</dt>
<dd>M. Duerst, M. Suignard, "Internationalized Resource Identifiers
(IRIs)", January 2005. (See <cite><a href=
"http://www.ietf.org/rfc/rfc3987.txt">http://www.ietf.org/rfc/rfc3987.txt</a></cite>.)</dd>
<dt class="label"><a name="SOAP11" id="SOAP11"></a>[SOAP 1.1]</dt>
<dd><cite><a href=
"http://www.w3.org/TR/2000/NOTE-SOAP-20000508/">Simple Object
Access Protocol (SOAP) 1.1</a></cite>, D. Box, D. Ehnebuske, G.
Kakivaya, A. Layman, N. Mendelsohn, H Frystyk Nielsen, S. Thatte,
D. Winer, Editors. W3C Member Submission, 8 May 2000.</dd>
<dt class="label"><a name="SOAP12-PART1" id=
"SOAP12-PART1"></a>[SOAP 1.2]</dt>
<dd><cite><a href=
"http://www.w3.org/TR/2007/REC-soap12-part1-20070427/">SOAP Version
1.2 Part 1: Messaging Framework (Second Edition)</a></cite>, M.
Gudgin, et al., Editors. World Wide Web Consortium, 24 June 2003,
revised 27 April 2007. This version of the "SOAP Version 1.2 Part
1: Messaging Framework" Recommendation is
http://www.w3.org/TR/2007/REC-soap12-part1-20070427/. The <a href=
"http://www.w3.org/TR/soap12-part1/">latest version of "SOAP
Version 1.2 Part 1: Messaging Framework"</a> is available at
http://www.w3.org/TR/soap12-part1/.</dd>
<dt class="label"><a name="WSADDR-CORE" id=
"WSADDR-CORE"></a>[WS-Addressing Core]</dt>
<dd><cite><a href=
"http://www.w3.org/TR/2006/REC-ws-addr-core-20060509">Web Services
Addressing 1.0 - Core</a></cite>, M. Gudgin, M. Hadley, and T.
Rogers, Editors. World Wide Web Consortium, 9 May 2006. This
version of the WS-Addressing Core Recommendation is
http://www.w3.org/TR/2006/REC-ws-addr-core-20060509. The <a href=
"http://www.w3.org/TR/ws-addr-core">latest version of WS-Addressing
Core</a> is available at http://www.w3.org/TR/ws-addr-core.</dd>
<dt class="label"><a name="WSADDR-SOAP" id=
"WSADDR-SOAP"></a>[WS-Addressing SOAP Binding]</dt>
<dd><cite><a href=
"http://www.w3.org/TR/2006/REC-ws-addr-soap-20060509">Web Services
Addressing 1.0 - SOAP Binding</a></cite>, M. Gudgin, M. Hadley, and
T. Rogers, Editors. World Wide Web Consortium, 9 May 2006. This
version of the WS-Addressing Core Recommendation is
http://www.w3.org/TR/2006/REC-ws-addr-soap-20060509. The <a href=
"http://www.w3.org/TR/ws-addr-soap">latest version of WS-Addressing
SOAP Binding</a> is available at
http://www.w3.org/TR/ws-addr-soap.</dd>
<dt class="label"><a name="WSDL11" id="WSDL11"></a>[WSDL 1.1]</dt>
<dd>E. Christensen, et al, <cite><a href=
"http://www.w3.org/TR/2001/NOTE-wsdl-20010315">Web Services
Description Language (WSDL) 1.1</a></cite>, March 2001.</dd>
<dt class="label"><a name="WSDL20" id="WSDL20"></a>[WSDL 2.0]</dt>
<dd><cite><a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626">Web Services
Description Language (WSDL) Version 2.0 Part 1: Core
Language</a></cite>, R. Chinnici, J-J. Moreau, A. Ryman, S.
Weerawarana, Editors. World Wide Web Consortium, 26 June 2007. This
version of the "Web Services Description Language (WSDL) Version
2.0 Part 1: Core Language" Recommendation is available is available
at http://www.w3.org/TR/2007/REC-wsdl20-20070626. The <a href=
"http://www.w3.org/TR/wsdl20">latest version of "Web Services
Description Language (WSDL) Version 2.0 Part 1: Core Language"</a>
is available at http://www.w3.org/TR/wsdl20.</dd>
<dt class="label"><a name="WSDL20Adj" id="WSDL20Adj"></a>[WSDL 2.0
Adjuncts]</dt>
<dd><cite><a href=
"http://www.w3.org/TR/2007/REC-wsdl20-adjuncts-20070626">Web
Services Description Language (WSDL) Version 2.0 Part 2:
Adjuncts</a></cite>, R. Chinnici, H. Haas, A. Lewis, J-J. Moreau,
D. Orchard, S. Weerawarana, Editors. World Wide Web Consortium, 26
June 2007. This version of the "Web Services Description Language
(WSDL) Version 2.0 Part 2: Adjuncts" Recommendation is available at
http://www.w3.org/TR/2007/REC-wsdl20-adjuncts-20070626. The
<a href="http://www.w3.org/TR/wsdl20-adjuncts">latest version of
"Web Services Description Language (WSDL) Version 2.0 Part 2:
Adjuncts"</a> is available at
http://www.w3.org/TR/wsdl20-adjuncts.</dd>
<dt class="label"><a name="WSPolicy" id="WSPolicy"></a>[WS Policy
1.5]</dt>
<dd><cite><a href=
"http://www.w3.org/TR/2007/REC-ws-policy-20070904">Web Services
Policy 1.5 - Framework</a></cite>, Asir S Vedamuthu, et al.,
Editors. World Wide Web Consortium, 4 September 2007. This version
of the WS-Policy Framework is
http://www.w3.org/TR/2007/REC-ws-policy-20070904. The <a href=
"http://www.w3.org/TR/ws-policy">latest version of WS Policy
Framework</a> is available at http://www.w3.org/TR/ws-policy</dd>
<dt class="label"><a name="WSPolicyAttachment" id=
"WSPolicyAttachment"></a>[WS Policy 1.5 - Attachment]</dt>
<dd><cite><a href=
"http://www.w3.org/TR/2007/REC-ws-policy-attach-20070904">Web
Services Policy 1.5 - Attachment</a></cite>, Asir S Vedamuthu, et
al., Editors. World Wide Web Consortium, 4 September 2007. This
version of the WS-Policy Attachment is
http://www.w3.org/TR/2007/REC-ws-policy-attach-20070904. The
<a href="http://www.w3.org/TR/ws-policy-attach">latest version of
WS Policy Attachment</a> is available at
http://www.w3.org/TR/ws-policy-attach</dd>
<dt class="label"><a name="XML10" id="XML10"></a>[XML 1.0]</dt>
<dd><cite><a href=
"http://www.w3.org/TR/2006/REC-xml-20060816">Extensible Markup
Language (XML) 1.0 (Fourth Edition)</a></cite>, T. Bray, J. Paoli,
C. M. Sperberg-McQueen, and E. Maler, Editors. World Wide Web
Consortium, 10 February 1998, revised 16 August 2006. This version
of the XML 1.0 Recommendation is
http://www.w3.org/TR/2006/REC-xml-20060816. The <a href=
"http://www.w3.org/TR/xml">latest version of XML 1.0</a> is
available at http://www.w3.org/TR/xml.</dd>
<dt class="label"><a name="XMLNS" id="XMLNS"></a>[XML
Namespaces]</dt>
<dd><cite><a href=
"http://www.w3.org/TR/2006/REC-xml-names-20060816/">Namespaces in
XML 1.0 (Second Edition)</a></cite>, T. Bray, D. Hollander, A.
Layman, and R. Tobin, Editors. World Wide Web Consortium, 14
January 1999, revised 16 August 2006. This version of Namespaces in
XML 1.0 Recommendation is
http://www.w3.org/TR/2006/REC-xml-names-20060816/. The <a href=
"http://www.w3.org/TR/xml-names">latest version of Namespaces in
XML</a> is available at http://www.w3.org/TR/xml-names.</dd>
<dt class="label"><a name="XMLInfoSet" id="XMLInfoSet"></a>[XML
Information Set]</dt>
<dd><cite><a href=
"http://www.w3.org/TR/2004/REC-xml-infoset-20040204/">XML
Information Set (Second Edition)</a></cite>, J. Cowan and R. Tobin,
Editors. World Wide Web Consortium, 24 October 2001, revised 4
February 2004. This version of the XML Information Set
Recommendation is
http://www.w3.org/TR/2004/REC-xml-infoset-20040204/. The <a href=
"http://www.w3.org/TR/xml-infoset">latest version of XML
Information Set</a> is available at
http://www.w3.org/TR/xml-infoset.</dd>
<dt class="label"><a name="XMLSchemaP1" id="XMLSchemaP1"></a>[XML
Schema Structures]</dt>
<dd><cite><a href=
"http://www.w3.org/TR/2004/REC-xmlschema-1-20041028/">XML Schema
Part 1: Structures Second Edition</a></cite>, H. Thompson, D.
Beech, M. Maloney, and N. Mendelsohn, Editors. World Wide Web
Consortium, 2 May 2001, revised 28 October 2004. This version of
the XML Schema Part 1 Recommendation is
http://www.w3.org/TR/2004/REC-xmlschema-1-20041028. The <a href=
"http://www.w3.org/TR/xmlschema-1/">latest version of XML Schema
Part 1</a> is available at http://www.w3.org/TR/xmlschema-1.</dd>
<dt class="label"><a name="XMLSchemaP2" id="XMLSchemaP2"></a>[XML
Schema Datatypes]</dt>
<dd><cite><a href=
"http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/">XML Schema
Part 2: Datatypes Second Edition</a></cite>, P. Byron and A.
Malhotra, Editors. World Wide Web Consortium, 2 May 2001, revised
28 October 2004. This version of the XML Schema Part 2
Recommendation is
http://www.w3.org/TR/2004/REC-xmlschema-2-20041028. The <a href=
"http://www.w3.org/TR/xmlschema-2/">latest version of XML Schema
Part 2</a> is available at http://www.w3.org/TR/xmlschema-2.</dd>
</dl>
</div>
<div class="div2">
<h3><a name="id2279332" id="id2279332"></a>7.2 Informative</h3>
<dl>
<dt class="label"><a name="WSPolicyPrimer" id=
"WSPolicyPrimer"></a>[WS Policy 1.5 - Primer]</dt>
<dd><cite><a href=
"http://www.w3.org/TR/2007/WD-ws-policy-primer-20070810">Web
Services Policy 1.5 - Primer</a></cite>, Asir S Vedamuthu, et al.,
Editors. World Wide Web Consortium, 10 August 2007. This version of
the WS-Policy Primer is
http://www.w3.org/TR/2007/WD-ws-policy-primer-20070810. The
<a href="http://www.w3.org/TR/ws-policy-primer">latest version of
WS Policy Primer</a> is available at
http://www.w3.org/TR/ws-policy-primer</dd>
<dt class="label"><a name="WS-Security" id=
"WS-Security"></a>[WS-Security]</dt>
<dd>OASIS, <cite><a href=
"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0.pdf">
Web Services Security: SOAP Message Security</a></cite>, March
2004.</dd>
</dl>
</div>
</div>
</div>
<div class="back">
<div class="div1">
<h2><a name="acknowledgments" id="acknowledgments"></a>A.
Acknowledgements (Non-Normative)</h2>
<p>This document is the work of the <a href=
"http://www.w3.org/2002/ws/addr/">W3C Web Service Addressing
Working Group</a>.</p>
<p>Members of the Working Group are (at the time of writing, and by
alphabetical order): Abbie Barbir (Nortel Networks), Andreas
Bjärlestam (ERICSSON), Eran Chinthaka (WSO2), Francisco Curbera
(IBM Corporation), Glen Daniels (Sonic Software), Vikas Deolaliker
(Sonoa Systems, Inc.), Paul Downey (BT), Jacques Durand (Fujitsu
Limited), Robert Freund (Hitachi, Ltd.), Marc Goodner (Microsoft
Corporation), David Hull (TIBCO Software, Inc.), Yin-Leng Husband
(HP), David Illsley (IBM Corporation), Ram Jeyaraman (Microsoft
Corporation), Anish Karmarkar (Oracle Corporation), Paul Knight
(Nortel Networks), Philippe Le Hégaret (W3C/MIT), Amelia Lewis
(TIBCO Software, Inc.), Bozhong Lin (IONA Technologies, Inc.), Mark
Little (JBoss Inc.), Jeganathan Markandu (Nortel Networks), Jeff
Mischkinsky (Oracle Corporation), Nilo Mitra (ERICSSON), Eisaku
Nishiyama (Hitachi, Ltd.), Ales Novy (Systinet Inc.), David Orchard
(BEA Systems, Inc.), Gilbert Pilz (BEA Systems, Inc.), Rama
Pulavarthi (Sun Microsystems, Inc.), Alain Regnier (Ricoh Company,
Ltd.), Tony Rogers (CA), Tom Rutt (Fujitsu Limited), Davanum
Srinivas (WSO2), Jiri Tejkl (Systinet Inc.), Katy Warr (IBM
Corporation), Steve Winkler (SAP AG), Ümit Yalçinalp (SAP AG),
Prasad Yendluri (webMethods, Inc.).</p>
<p>Previous members of the Working Group were: Lisa Bahler (SAIC -
Telcordia Technologies), Rebecca Bergersen (IONA Technologies,
Inc.), Vladislav Bezrukov (SAP AG), Dave Chappell (Sonic Software),
Ugo Corda (Sun Microsystems, Inc.), Michael Eder (Nokia), Yaron
Goland (BEA Systems, Inc.), Martin Gudgin (Microsoft Corporation),
Arun Gupta (Sun Microsystems, Inc.), Hugo Haas (W3C), Marc Hadley
(Sun Microsystems, Inc), Jonathan Marsh (Microsoft Corporation),
Mark Nottingham (BEA Systems, Inc.), Mark Peel (Novell, Inc.),
Harris Reynolds (webMethods, Inc.), Rich Salz (IBM Corporation),
Davanum Srinivas (Computer Associates), Greg Truty (IBM
Corporation), Mike Vernal (Microsoft Corporation), Steve Vinoski
(IONA Technologies, Inc.), Pete Wenzel (Sun Microsystems,
Inc.).</p>
<p>The people who have contributed to <a href=
"http://lists.w3.org/Archives/Public/public-ws-addressing/">discussions
on public-ws-addressing@w3.org</a> are also gratefully
acknowledged.</p>
</div>
<div class="div1">
<h2><a name="actioncompatibility" id="actioncompatibility"></a>B.
Compatibility of [action] with previous versions of WS-Addressing
(Non-Normative)</h2>
<p>This section describes strategies for choosing [action] values
consistent between this specification and the WS-Addressing Member
Submission published 10 August 2004 (hereafter called "2004-08").
The wsa200408 namespace prefix below refers to the
"http://schemas.xmlsoap.org/ws/2004/08/addressing" namespace
defined in the 2004-08 version.</p>
<p>The WS-Addressing 1.0 [action] property, which identifies the
semantics implied by a message, is semantically equivalent to the
[action] message information header defined in the 2004-08 version.
Authors are therefore advised to use the same value for 1.0
[action] and 2004-08 [action].</p>
<p>However, when describing services in WSDL, the namespace of the
Action attribute used to associate values with WSDL operations
differs in the two versions (wsam:Action versus wsa200408:Action),
and the default action pattern in WS-Addressing 1.0 differs in two
respects from that in the 2004-08 version: the [delimiter] can be
either "/" or ":" in 1.0 while in 2004-08 it is always "/", and the
default action pattern for faults is closer to that of other
messages instead of a constant URI.</p>
<p>If a default action pattern is desired, this specification
recommends the 1.0 default action pattern. The 200408 [action] can
be made consistent with the 1.0 default by:</p>
<ol class="enumar">
<li>
<p>specifying wsa200408:Action explicitly when the targetNamespace
is a URN, and</p>
</li>
<li>
<p>specifying wsa200408:Action explicitly when the message is a
fault.</p>
</li>
</ol>
<p>If the targetNamespace is a URN, it is not advisable to use the
2004-08 default action pattern, as it leads to malformed IRIs. If
the targetNamespace is not a URN, and the 2004-08 default action
pattern is in use, the 1.0 [action] value can be made consistent
by:</p>
<ol class="enumar">
<li>
<p>specifying wsam:Action explicitly when the message is a
fault.</p>
</li>
</ol>
</div>
</div>
</body>
</html>