<?xml version="1.0" encoding="us-ascii"?>
<!DOCTYPE spec PUBLIC "-//W3C//DTD Specification V2.2//EN" "http://www.w3.org/2002/xmlspec/dtd/2.2/xmlspec.dtd">
<!--
/*
 * Copyright (c) 2003 World Wide Web Consortium,
 *
 * (Massachusetts Institute of Technology, European Research Consortium for
 * Informatics and Mathematics, Keio University). All Rights Reserved. This
 * work is distributed under the W3C(r) Document License [1] in the hope that
 * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 *
 * [1] http://www.w3.org/Consortium/Legal/2002/copyright-documents-20021231
 */
    -->
<!-- $Id: ws-addr-core.xml,v 1.1 2004/12/08 21:29:45 matthieu Exp $ -->
<?xml-stylesheet type='text/xsl' href='xmlspec-addressing.xsl'?><spec xmlns:xlink="http://www.w3.org/1999/xlink" w3c-doctype="wd" role="public">
    <header>
        <title>Web Services Addressing - Core</title>
        <w3c-designation>http://www.w3.org/TR/2004/WD-ws-addr-core-20041208</w3c-designation>
        <w3c-doctype>W3C Working Draft</w3c-doctype>
        <pubdate>
            <day>8</day>
            <month>December</month>
            <year>2004</year>
        </pubdate>
        <publoc>
            <loc href="http://www.w3.org/TR/2004/WD-ws-addr-core-20041208" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://www.w3.org/TR/2004/WD-ws-addr-core-20041208</loc>
        </publoc> <altlocs>
	<loc role="postscript" href="ws-addr-core.ps" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">postscript</loc>
	<loc role="pdf" href="ws-addr-core.pdf" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">PDF</loc>
	<loc role="xml" href="ws-addr-core.xml" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">XML</loc>
	<loc role="plain" href="ws-addr-core.txt" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">plain text</loc>
    </altlocs> <!--<prevlocs>
      <loc href="&prevloc;">&prevloc;</loc>
        </prevlocs>
-->

	<latestloc>
	  <loc href="http://www.w3.org/TR/ws-addr-core" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://www.w3.org/TR/ws-addr-core</loc>
	</latestloc>

        <authlist>
            <author>
                <name>Martin Gudgin</name>
                <affiliation>Microsoft Corp</affiliation>
            </author>
            <author>
                <name>Marc Hadley</name>
                <affiliation>Sun Microsystems, Inc</affiliation>
            </author>
        </authlist>
        <abstract>
            <p>Web Services Addressing provides transport-neutral mechanisms to address Web services
                and messages. Web Services Addressing Core (this document) defines a set of abstract
                properties and an XML Infoset [<bibref ref="XMLInfoSet"/>] representation thereof to
                identify Web service endpoints and to secure end-to-end identification of endpoints
                in messages. This specification enables messaging systems to support message
                transmission through networks that include processing nodes such as endpoint
                managers, firewalls, and gateways in a transport-neutral manner.</p>
        </abstract>

	
<status id="Status">
  <p>
    <emph>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 <loc href="http://www.w3.org/TR/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">W3C technical reports index</loc> at
    http://www.w3.org/TR/.</emph>
  </p>

  <p>This is the <loc href="http://www.w3.org/2004/02/Process-20040205/tr.html#first-wd" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">First
  Public Working Draft</loc> of the Web Services Addressing - Core specification for review
  by W3C members and other interested parties. It has been produced by
  the <loc href="http://www.w3.org/2002/ws/addr/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">Web Services
  Addressing Working Group</loc> (WG), which is part of the <loc href="http://www.w3.org/2002/ws/Activity" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">W3C Web Services
  Activity</loc>.</p>
  
  <p>In this Working Draft, the Web Services Addressing Working Group
  has, in keeping with its <loc href="http://www.w3.org/2004/09/wsa-charter.html" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">charter</loc>,
  separated the WS-Addressing Member Submission into three separate
  specifications: Core, SOAP Binding, and WSDL Binding. The Working
  Group expects to publish an updated draft in the near future
  incorporting more resolutions from its <loc href="http://www.w3.org/2002/ws/addr/wd-issues/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">issues list</loc>.</p>
  
<!--
  <p>Comments on this specification should be sent to
  @@@. It is inappropriate to send discussion
  emails to this address.</p>
-->

  <!--
    <p>A <loc href="diff.html">diff-marked version against the
    previous version of this document</loc> is available. For a
    detailed list of changes since the last publication of this
    document, please refer to appendix <specref ref="changelog"/>.
    Issues about this document are documented in the <loc
    href='http://www.w3.org/2002/ws/desc/last-call-issues'>last call
    issues list</loc> maintained by the Working Group.</p>
  -->
  
  <p>Discussion of this document takes place on the public public <loc href="mailto:public-ws-addressing@w3.org" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">public-ws-addressing@w3.org</loc>
  mailing list (<loc href="http://lists.w3.org/Archives/Public/public-ws-addressing/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">public
  archive</loc>).
  Comments on this specification should be sent to this mailing list.
  </p>

  <p>
    This document was produced under the <loc href="http://www.w3.org/Consortium/Patent-Policy-20040205/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">5
    February 2004 W3C Patent Policy</loc>. The Working Group maintains
    a <loc href="http://www.w3.org/2004/01/pp-impl/36696/status#specs" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">public
    list of patent disclosures</loc> relevant to this document; that
    page also includes instructions for disclosing [and excluding] a
    patent. An individual who has actual knowledge of a patent which
    the individual believes contains Essential Claim(s) with respect
    to this specification should disclose the information in
    accordance with <loc href="http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">section
    6 of the W3C Patent Policy</loc>.
  </p>

  <p>
    Per <loc href="http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Exclusion" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">section
    4 of the W3C Patent Policy</loc>, Working Group participants have
    150 days from the title page date of this document to exclude
    essential claims from the W3C RF licensing requirements with
    respect to this document series. Exclusions are with respect to
    the exclusion reference document, defined by the W3C Patent Policy
    to be the latest version of a document in this series that is
    published no later than 90 days after the title page date of this
    document.
  </p>

  <p>
    Publication as a Working Draft does not imply endorsement by the W3C
    Membership. This is a draft document and may be updated, replaced or
    obsoleted by other documents at any time. It is inappropriate to
    cite this document as other than work in progress.
  </p>

  <ednote>
    <edtext>The Web Services Addressing Working Group has decided to
    use XML Schema, where appropriate, to describe constructs defined
    in this specification. Note that this restricts use of Web
    Services Addressing to XML 1.0.</edtext>
  </ednote>

</status>

        <langusage>
            <language id="en-US">English</language>
        </langusage>
        <revisiondesc>
            <p>Last Modified: $Date: 2004/12/08 21:29:45 $</p>
        </revisiondesc>
    </header>
    <body>
        <div1 id="tocRange">
            <head> Introduction</head>
            <p>Web Services Addressing (WS-Addressing) defines two constructs that convey
                information that is typically provided by transport protocols and messaging systems:
                endpoint references and message addressing properties. These constructs normalize
                this underlying information into a uniform format that can be processed
                independently of transport or application.</p>
            <p>A Web service endpoint is a (referenceable) entity, processor, or resource to which
                Web service messages can be targeted. Endpoint references convey the information
                needed to identify/reference a Web service endpoint, and may be used in several
                different ways:</p>
            <ulist>
                <item>
                    <p>To convey the information needed to access a Web service endpoint</p>
                </item>
                <item>
                    <p>To provide addresses for individual messages sent to and from Web services</p>
                </item>
            </ulist>
            <p>To deal with this last usage case this specification defines a family of message
                addressing properties that allows uniform addressing of messages independent of
                underlying transport. These message addressing properties convey end-to-end message
                characteristics including addressing for source and destination endpoints as well as
                message identity.</p>
            <p>Both of these constructs are designed to be extensible and re-usable so that other
                specifications can build on and leverage endpoint references and message information headers.</p>
            <p>The following example illustrates the use of these mechanisms in a SOAP 1.2 message
                being sent from http://business456.example/client1 to http://fabrikam123.example/Purchasing:</p>
            <example>
                <head>Use of message addressing properties in a SOAP 1.2 message.</head>
                <eg xml:space="preserve">
(001) &lt;S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope"      
                xmlns:wsa="http://www.w3.org/2004/12/addressing"&gt;
(002)   &lt;S:Header&gt;
(003)    &lt;wsa:MessageID&gt;
(004)      http://example.com/6B29FC40-CA47-1067-B31D-00DD010662DA
(005)    &lt;/wsa:MessageID&gt;
(006)    &lt;wsa:ReplyTo&gt;
(007)      &lt;wsa:Address&gt;http://business456.example/client1&lt;/wsa:Address&gt;
(008)    &lt;/wsa:ReplyTo&gt;
(009)    &lt;wsa:To&gt;http://fabrikam123.example/Purchasing&lt;/wsa:To&gt;
(010)    &lt;wsa:Action&gt;http://fabrikam123.example/SubmitPO&lt;/wsa:Action&gt;
(011)   &lt;/S:Header&gt;
(012)   &lt;S:Body&gt;
(013)     ...
(014)   &lt;/S:Body&gt;
(015) &lt;/S:Envelope&gt;
</eg>
                <p>Lines (002) to (011) represent the header of the SOAP message where the
                    mechanisms defined in the specification are used. The body is represented by
                    lines (012) to (014).</p>
                <p>Lines (003) to (010) contain the message information header blocks. Specifically,
                    lines (003) to (005) specify the identifier for this message and lines (006) to
                    (008) specify the endpoint to which replies to this message should be sent as an
                    Endpoint Reference. Line (009) specifies the address URI of the ultimate
                    receiver of this message. Line (010) specifies an Action URI identifying
                    expected semantics.</p>
            </example>
            <div2 id="_Toc77464315">
                <head> Notational Conventions</head>
                <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 [<bibref ref="RFC2119"/>].</p>
                <p>When describing abstract data models, this specification uses the notational
                    convention used by the XML Infoset [<bibref ref="XMLInfoSet"/>]. Specifically,
                    abstract property names always appear in square brackets (e.g., [some property]).</p>
                <p>When describing concrete XML schemas [<bibref ref="XMLSchemaP1"/>, <bibref ref="XMLSchemaP2"/>], this specification uses the notational convention of
                    WS-Security [<bibref ref="WS-Security"/>]. 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>
            </div2>
            <div2 id="_Toc77464316">
                <head> Namespaces</head>
                <p> This specification uses a number of namespace prefixes throughout; they are
                    listed in <specref ref="nsprefix"/>. Note that the choice of any namespace
                    prefix is arbitrary and not semantically significant (see [<bibref ref="XMLNS"/> ]).</p>
                <table summary="Namespace prefixes usage in this specification" id="nsprefix" border="1">
                    <caption>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/2004/12/addressing</td>
                        </tr>
                        <tr>
                            <td rowspan="1" colspan="1">xs</td>
                            <td rowspan="1" colspan="1">http://www.w3.org/2001/XMLSchema</td>
                        </tr>
                    </tbody>
                </table>
                <p>WS-Addressing may be used with SOAP [<bibref ref="SOAP12-PART1"/>] as described
                    in Web Services Addressing - SOAP Binding[<bibref ref="WSADDR-SOAP"/>].
                    WS-Addressing may be used with WSDL [<bibref ref="WSDL20"/>] described services
                    as described in Web Services Addressing - WSDL Binding[<bibref ref="WSADDR-WSDL"/>]. Examples in this specification use an XML 1.0 [<bibref ref="XML10"/>] representation but this is not a requirement.</p>
                <p>All information items defined by WS-Addressing are identified by the XML
                    namespace URI [<bibref ref="XMLNS"/>] "http://www.w3.org/2004/12/addressing". A normative XML Schema
                        [<bibref ref="XMLSchemaP1"/>, <bibref ref="XMLSchemaP2"/>] document can be
                    obtained by dereferencing the XML namespace URI.</p>
            </div2>
        </div1>
        <div1 id="_Toc77464317">
            <head> Endpoint References</head>
            <p>This section defines the information model and syntax of an endpoint reference.</p>
            <p> This specification introduces the endpoint reference, a construct designed to
                support the following usage scenarios:</p>
            <ulist>
                <item>
                    <p> Dynamic generation and customization of service endpoint descriptions.</p>
                </item>
            </ulist>
            <ulist>
                <item>
                    <p> Identification and description of specific service instances that are
                        created as the result of stateful interactions.</p>
                </item>
            </ulist>
            <ulist>
                <item>
                    <p> Flexible and dynamic exchange of endpoint information in tightly coupled
                        environments where communicating parties share a set of common assumptions
                        about specific policies or protocols that are used during the interaction.</p>
                </item>
            </ulist>
            <div2 id="_Toc77464318">
                <head> Information Model for Endpoint References</head>
                <p>An endpoint reference consists of the following abstract properties:</p>
                <glist>
                    <gitem>
                        <label> [address] : URI (mandatory)</label>
                        <def>
                            <p>An address URI that identifies the endpoint. This may be a network
                                address or a logical address.</p>
                        </def>
                    </gitem>
                    <gitem>
                        <label> [reference properties] : xs:any (0..unbounded).</label>
                        <def>
                            <p>A reference may contain a number of individual properties that are
                                required to identify the entity or resource being conveyed.
                                Reference identification properties are element information items
                                that are named by QName and are required to properly dispatch
                                messages at the endpoint. Reference properties are provided by the
                                issuer of the endpoint reference and are otherwise assumed to be
                                opaque to consuming applications. The interpretation of these
                                properties (as the use of the endpoint reference in general) is
                                dependent upon the protocol binding and data encoding used to
                                interact with the endpoint. Web Services Addressing - SOAP
                                    Binding[<bibref ref="WSADDR-SOAP"/>] defines the default binding
                                for the SOAP protocol. Consuming applications SHOULD assume that
                                endpoints represented by endpoint references with different
                                [reference properties] may accept different sets of messages or
                                follow a different set of policies, and consequently may have
                                different associated metadata (WSDL, XML Schema, and policies ). The
                                relationship between reference properties and endpoint policies is
                                further explained in <specref ref="eprcomp"/>
                            </p>
                        </def>
                    </gitem>
                    <gitem>
                        <label> [reference parameters] : xs:any (0..unbounded).</label>
                        <def>
                            <p>A reference may contain a number of individual parameters which are
                                associated with the endpoint to facilitate a particular interaction.
                                Reference parameters are element information items that are named by
                                QName and are required to properly interact with the endpoint.
                                Reference parameters are also provided by the issuer of the endpoint
                                reference and are otherwise assumed to be opaque to consuming
                                applications. The use of reference parameters is dependent upon the
                                protocol binding and data encoding used to interact with the
                                endpoint. Web Services Addressing - SOAP Binding[<bibref ref="WSADDR-SOAP"/>] describes the default binding for the SOAP
                                protocol. Unlike [reference properties], the [reference parameters]
                                of two endpoint references may differ without an implication that
                                different XML Schema, WSDL or policies apply to the endpoints.</p>
                        </def>
                    </gitem>
                    <gitem>
                        <label> [selected port type] : QName (0..1)</label>
                        <def>
                            <p>The QName of the primary portType of the endpoint being conveyed, see
                                Web Services Addressing - WSDL Binding<bibref ref="WSADDR-WSDL"/>
                                for more details.</p>
                        </def>
                    </gitem>
                    <gitem>
                        <label> [service-port] : (QName, NCName (0..1)) (0..1)</label>
                        <def>
                            <p>The QName identifying the WSDL service element that contains the
                                definition of the endpoint being conveyed, see Web Services
                                Addressing - WSDL Binding<bibref ref="WSADDR-WSDL"/> for more details.</p>
                        </def>
                    </gitem>
                    <gitem>
                        <label> [policies] : xsd:any (0..unbounded)</label>
                        <def>
                            <p>A reference may contain a number of policies that describe the
                                behavior, requirements and capabilities of the endpoint. Policies
                                may be included in an endpoint to facilitate easier processing by
                                the consuming application, or because the policy was dynamically
                                generated. However, embedded policies are not authoritative and may
                                be stale or incoherent with the policies associated with the
                                endpoint at the time when the interaction occurs.</p>
                        </def>
                    </gitem>
                </glist>
            </div2>
            <div2 id="_Toc77464319">
                <head> Endpoint Reference XML Infoset Representation</head>
                <p>This section defines an XML Infoset-based representation for an endpoint
                    reference as both an XML type (wsa:EndpointReferenceType) and as an XML element (&lt;wsa:EndpointReference&gt;).</p>
                <p>The wsa:EndpointReferenceType type is used wherever a Web service endpoint is
                    referenced. The following describes the contents of this type:</p>
                <example>
                    <head>Structure of the wsa:EndpointReference element.</head>
                    <eg xml:space="preserve">
&lt;wsa:EndpointReference&gt;
    &lt;wsa:Address&gt;xs:anyURI&lt;/wsa:Address&gt;
    &lt;wsa:ReferenceProperties&gt;... &lt;/wsa:ReferenceProperties&gt; ?
    &lt;wsa:ReferenceParameters&gt;... &lt;/wsa:ReferenceParameters&gt; ?
    &lt;wsa:PortType&gt;xs:QName&lt;/wsa:PortType&gt; ?
    &lt;wsa:ServiceName PortName="xs:NCName"?&gt;xs:QName&lt;/wsa:ServiceName&gt; ?
    &lt;wsa:Policies&gt; ... &lt;/wsa:Policies&gt;?
    &lt;xs:any/&lt;*
&lt;/wsa:EndpointReference&gt;
      </eg>
                </example>
                <p>The following describes the attributes and elements listed in the schema overview above:</p>
                <glist>
                    <gitem>
                        <label> /wsa:EndpointReference</label>
                        <def>
                            <p>This represents some element of type wsa:EndpointReferenceType. This
                                example uses the predefined &lt;wsa:EndpointReference&gt;
                                element, but any element of type wsa:EndpointReferenceType may be used.</p>
                        </def>
                    </gitem>
                    <gitem>
                        <label> /wsa:EndpointReference/wsa:Address</label>
                        <def>
                            <p>This REQUIRED element (of type xs:anyURI) specifies the [address]
                                property of the endpoint reference. This address may be a logical
                                address or identifier for the service endpoint.</p>
                        </def>
                    </gitem>
                    <gitem>
                        <label> /wsa:EndpointReference/wsa:ReferenceProperties/</label>
                        <def>
                            <p>This OPTIONAL element contains the elements that convey the
                                [reference properties] of the reference.</p>
                        </def>
                    </gitem>
                    <gitem>
                        <label> /wsa:EndpointReference/wsa:ReferenceProperties/{any}</label>
                        <def>
                            <p>Each child element of ReferenceProperties represents an individual
                                [reference property].</p>
                        </def>
                    </gitem>
                    <gitem>
                        <label> /wsa:EndpointReference/wsa:ReferenceParameters/</label>
                        <def>
                            <p>This OPTIONAL element contains the elements that convey the
                                [reference parameters] of the reference.</p>
                        </def>
                    </gitem>
                    <gitem>
                        <label> /wsa:EndpointReference/wsa:ReferenceParameters/{any}</label>
                        <def>
                            <p>Each child element of ReferenceParameters represents an individual
                                [reference parameter].</p>
                        </def>
                    </gitem>
                    <gitem>
                        <label> /wsa:EndpointReference/wsa:PortType</label>
                        <def>
                            <p>This OPTIONAL element (of type xs:Qname) specifies the value of the
                                [selected port type] property of the endpoint reference, see Web
                                Services Addressing - WSDL Binding<bibref ref="WSADDR-WSDL"/> for
                                more details..</p>
                        </def>
                    </gitem>
                    <gitem>
                        <label> /wsa:EndpointReference/wsa:ServiceName</label>
                        <def>
                            <p>This OPTIONAL element (of type xs:QName) specifies the
                                &lt;wsdl:service&gt; definition that contains a WSDL
                                description of the endpoint being referenced, see Web Services
                                Addressing - WSDL Binding<bibref ref="WSADDR-WSDL"/> for more details..</p>
                        </def>
                    </gitem>
                    <gitem>
                        <label> /wsa:EndpointReference/wsa:ServiceName/@PortName</label>
                        <def>
                            <p>This OPTIONAL attribute (of type xs:NCName) specifies the name of the
                                &lt;wsdl:port&gt; definition that corresponds to the
                                endpoint being referenced, see Web Services Addressing - WSDL
                                    Binding<bibref ref="WSADDR-WSDL"/> for more details.</p>
                        </def>
                    </gitem>
                    <gitem>
                        <label> /wsa:EndpointReference/wsa:Policies</label>
                        <def>
                            <p>This OPTIONAL element contains policies that are relevant to the
                                interaction with the endpoint.</p>
                        </def>
                    </gitem>
                    <gitem>
                        <label> /wsa:EndpointReference/wsa:Policies/{any}</label>
                        <def>
                            <p>Each child element of Policies represents an individual [policy].</p>
                        </def>
                    </gitem>
                    <gitem>
                        <label> /wsa:EndpointReference/{any}</label>
                        <def>
                            <p>This is an extensibility mechanism to allow additional elements to be specified.</p>
                        </def>
                    </gitem>
                    <gitem>
                        <label> /wsa:EndpointReference/@{any}</label>
                        <def>
                            <p>This is an extensibility mechanism to allow additional attributes to
                                be specified.</p>
                        </def>
                    </gitem>
                </glist>
                <p>The following shows an example endpoint reference. This element references the
                    port of type "fabrikam:InventoryPortType" at the URI "http://www.fabrikam123.example/acct".</p>
                <example>
                    <head>Example endpoint reference.</head>
                    <eg xml:space="preserve">
&lt;wsa:EndpointReference xmlns:wsa="..." xmlns:fabrikam="..."&gt;
   &lt;wsa:Address&gt;http://www.fabrikam123.example/acct&lt;/wsa:Address&gt;
   &lt;wsa:PortType&gt;fabrikam:InventoryPortType&lt;/wsa:PortType&gt;
&lt;/wsa:EndpointReference&gt;
      </eg>
                </example>
            </div2>
            <div2 id="eprcomp">
                <head> Endpoint Reference Comparison</head>
                <p>During the course of Web services interactions applications may receive multiple
                    endpoint references describing the endpoints it needs to interact with.
                    Different copies of an endpoint reference may also be received over time.</p>
                <p>The following rules clarify the relation between the behaviors of the endpoints
                    represented by two endpoint references with the same [address] and the same
                    [reference properties].</p>
                <ulist>
                    <item>
                        <p>The two endpoints accept the same sets of messages, and follow and
                            require the same set of policies. That is, the XML Schema, WSDL, and
                            policy metadata applicable to the two references are the same.</p>
                    </item>
                    <item>
                        <p>In particular, the policies applicable to the two endpoints are the same
                            regardless of the values of any embedded [policies]. Embedded policies
                            are not authoritative and may be stale or incoherent with the policies
                            associated with the endpoint.</p>
                    </item>
                </ulist>
                <p>The [address] properties of two endpoint references are compared according to
                    Section 6 of [<bibref ref="RFC2396"/>]. The [reference properties] of two
                    endpoint references are equal if:</p>
                <ulist>
                    <item>
                        <p>they contain the same number of individual properties;</p>
                    </item>
                    <item>
                        <p>for each reference property in one endpoint reference there exists an
                            equivalent reference property in the other. One [reference property] is
                            equivalent to another [reference property] if their byte streams per
                            Exclusive XML Canonicalization are equal.</p>
                    </item>
                </ulist>
                <p>Therefore, a consuming application should assume that different XML Schemas, WSDL
                    definitions and policies apply to endpoint references whose address or reference
                    properties differ.</p>
            </div2>
        </div1>
        <div1 id="_Toc77464322">
            <head> Message Addressing Properties</head>
            <p>This section defines the information model and syntax of message addressing properties.</p>
            <p>Message addressing properties enable the identification and location of the endpoints
                involved in an interaction. The basic interaction pattern from which all others are
                composed is "one way". In this pattern a source sends a message to a destination
                without any further definition of the interaction. "Request Reply" is a common
                interaction pattern that consists of an initial message sent by a source endpoint
                (the request) and a subsequent message sent from the destination of the request back
                to the source (the reply). A reply can be either an application message, a fault, or
                any other message.</p>
            <p>Message addressing properties collectively augment a message with the following
                abstract properties to support one way, request reply, and any other interaction pattern:</p>
            <glist>
                <gitem>
                    <label> [destination] : URI (mandatory)</label>
                    <def>
                        <p>The address of the intended receiver of this message.</p>
                    </def>
                </gitem>
                <gitem>
                    <label> [source endpoint] : endpoint reference (0..1)</label>
                    <def>
                        <p>Reference of the endpoint where the message originated from.</p>
                    </def>
                </gitem>
                <gitem>
                    <label> [reply endpoint] : endpoint reference (0..1)</label>
                    <def>
                        <p>An endpoint reference that identifies the intended receiver for replies
                            to this message. If a reply is expected, a message MUST contain a [reply
                            endpoint]. The sender MUST use the contents of the [reply endpoint] to
                            formulate the reply message as defined in <specref ref="formreplymsg"/>.
                            If the [reply endpoint] is absent, the contents of the [source endpoint]
                            may be used to formulate a message to the source. This property MAY be
                            absent if the message has no meaningful reply. If this property is
                            present, the [message id] property is REQUIRED.</p>
                    </def>
                </gitem>
                <gitem>
                    <label> [fault endpoint] : endpoint reference (0..1)</label>
                    <def>
                        <p>An endpoint reference that identifies the intended receiver for faults
                            related to this message. When formulating a fault message as defined in
                                <specref ref="formreplymsg"/>, the sender MUST use the contents of
                            the [fault endpoint] of the message being replied to to formulate the
                            fault message. If the [fault endpoint] is absent, the sender MAY use the
                            contents of the [reply endpoint] to formulate the fault message. If both
                            the [fault endpoint] and [reply endpoint] are absent, the sender MAY use
                            the contents of the [source endpoint] to formulate the fault message.
                            This property may be absent if the sender cannot receive fault messages
                            (e.g., is a one-way application message). If this property is present,
                            the [message id] property is REQUIRED.</p>
                    </def>
                </gitem>
                <gitem>
                    <label> [action] : URI (mandatory)</label>
                    <def>
                        <p>An identifier that uniquely (and opaquely) identifies the semantics
                            implied by this message.</p>
                        <p>It is RECOMMENDED that value of the [action] property is a URI
                            identifying an input, output, or fault message within a WSDL port type.
                            An action may be explicitly or implicitly associated with the
                            corresponding WSDL definition. Web Services Addressing - WSDL
                                Binding<bibref ref="WSADDR-WSDL"/> describes the mechanisms of
                            association. Finally, if in addition to the [action] property, a SOAP
                            Action URI is encoded in a request, the URI of the SOAP Action MUST be
                            the same as the one specified by the [action] property.</p>
                    </def>
                </gitem>
                <gitem>
                    <label> [message id] : URI (0..1)</label>
                    <def>
                        <p>A URI that uniquely identifies this message in time and space. No two
                            messages with a distinct application intent may share a [message id]
                            property. A message MAY be retransmitted for any purpose including
                            communications failure and MAY use the same [message id] property. The
                            value of this property is an opaque URI whose interpretation beyond
                            equivalence is not defined in this specification. If a reply is
                            expected, this property MUST be present. </p>
                    </def>
                </gitem>
                <gitem>
                    <label> [relationship] : (QName, URI) (0..unbounded)</label>
                    <def>
                        <p>A pair of values that indicate how this message relates to another
                            message. The type of the relationship is identified by a QName. The
                            related message is identified by a URI that corresponds to the related
                            message's [message id] property. The message identifier URI may refer to
                            a specific message, or be the following well-known URI that means
                            "unspecified message":<code> http://www.w3.org/2004/12/addressing</code>
                        </p>
                        <p>This specification has one predefined relationship type as shown in
                                <specref ref="predefrels"/>.</p>
                        <table id="predefrels" border="1" summary="Predefined [relationship] values">
                            <caption>Description of the QName used in [relationship]</caption>
                            <tbody>
                                <tr>
                                    <th align="left" rowspan="1" colspan="1">QName</th>
                                    <th align="left" rowspan="1" colspan="1">Description </th>
                                </tr>
                                <tr>
                                    <td rowspan="1" colspan="1">wsa:Reply</td>
                                    <td rowspan="1" colspan="1">Indicates that this is a reply to the message identified by
                                        the URI.</td>
                                </tr>
                            </tbody>
                        </table>
                        <p>A reply message MUST contain a [relationship] property consisting of
                            wsa:Reply and the message id property of the request message.</p>
                    </def>
                </gitem>
            </glist>
            <p>The dispatching of incoming messages is based on two message properties. The
                mandatory "destination" and "action" fields identify the target processing location
                and the verb or intent of the message.</p>
            <p>Due to the range of network technologies currently in wide-spread use (e.g., NAT,
                DHCP, firewalls), many deployments cannot assign a meaningful global URI to a given
                endpoint. To allow these "anonymous" endpoints to initiate message exchange patterns
                and receive replies, WS-Addressing defines the following well-known URI for use by
                endpoints that cannot have a stable, resolvable URI: <code>http://www.w3.org/2004/12/addressing</code>
            </p>
            <p>Requests whose [reply endpoint], [source endpoint] and/or [fault endpoint] use this
                address MUST provide some out-of-band mechanism for delivering replies or faults
                (e.g. returning the reply on the same transport connection). This mechanism may be a
                simple request/reply transport protocol (e.g., HTTP GET or POST). This URI MAY be
                used as the [destination] for reply messages and SHOULD NOT be used as the
                [destination] in other circumstances.</p>
            <div2 id="_Toc77464323">
                <head>XML Infoset Representation of Message Addressing Properties</head>
                <p>Message addressing properties provide end-to-end characteristics of a message
                    that can be easily secured as a unit. These properties are immutable and not
                    intended to be modified along a message path. </p>
                <p>The following describes the XML Infoset representation of message addressing properties:</p>
                <example>
                    <head>XML Infoset representation of message addressing properties.</head>
                    <eg xml:space="preserve">
&lt;wsa:MessageID&gt; xs:anyURI &lt;/wsa:MessageID&gt;
&lt;wsa:RelatesTo RelationshipType="..."?&gt;xs:anyURI&lt;/wsa:RelatesTo&gt;
&lt;wsa:To&gt;xs:anyURI&lt;/wsa:To&gt;
&lt;wsa:Action&gt;xs:anyURI&lt;/wsa:Action&gt;
&lt;wsa:From&gt;endpoint-reference&lt;/wsa:From&gt;
&lt;wsa:ReplyTo&gt;endpoint-reference&lt;/wsa:ReplyTo&gt;
&lt;wsa:FaultTo&gt;endpoint-reference&lt;/wsa:FaultTo&gt;
</eg>
                </example>
                <p>The following describes the attributes and elements listed in the schema overview above:</p>
                <glist>
                    <gitem>
                        <label> /wsa:MessageID</label>
                        <def>
                            <p>This OPTIONAL element (of type xs:anyURI) conveys the [message id]
                                property. This element MUST be present if wsa:ReplyTo or wsa:FaultTo
                                is present.</p>
                        </def>
                    </gitem>
                </glist>
                <glist>
                    <gitem>
                        <label> /wsa:RelatesTo</label>
                        <def>
                            <p>This OPTIONAL (repeating) element information item contributes one
                                abstract [relationship] property value, in the form of a (URI,
                                QName) pair. The [children] property of this element (which is of
                                type xs:anyURI) conveys the [message id] of the related message.
                                This element MUST be present if the message is a reply.</p>
                        </def>
                    </gitem>
                </glist>
                <glist>
                    <gitem>
                        <label> /wsa:RelatesTo/@RelationshipType</label>
                        <def>
                            <p>This OPTIONAL attribute (of type xs:QName) conveys the relationship
                                type as a QName. When absent, the implied value of this attribute is wsa:Reply.</p>
                        </def>
                    </gitem>
                </glist>
                <glist>
                    <gitem>
                        <label> /wsa:ReplyTo</label>
                        <def>
                            <p>This OPTIONAL element (of type wsa:EndpointReferenceType) provides
                                the value for the [reply endpoint] property. This element MUST be
                                present if a reply is expected. If this element is present,
                                wsa:MessageID MUST be present.</p>
                        </def>
                    </gitem>
                </glist>
                <glist>
                    <gitem>
                        <label> /wsa:From</label>
                        <def>
                            <p>This OPTIONAL element (of type wsa:EndpointReferenceType) provides
                                the value for the [source endpoint] property.</p>
                        </def>
                    </gitem>
                </glist>
                <glist>
                    <gitem>
                        <label> /wsa:FaultTo</label>
                        <def>
                            <p>This OPTIONAL element (of type wsa:EndpointReferenceType) provides
                                the value for the [fault endpoint] property. If this element is
                                present, wsa:MessageID MUST be present.</p>
                        </def>
                    </gitem>
                </glist>
                <glist>
                    <gitem>
                        <label> /wsa:To</label>
                        <def>
                            <p>This REQUIRED element (of type xs:anyURI) provides the value for the
                                [destination] property.</p>
                        </def>
                    </gitem>
                </glist>
                <glist>
                    <gitem>
                        <label> /wsa:Action</label>
                        <def>
                            <p>This REQUIRED element of type xs:anyURI conveys the [action]
                                property. The [children] of this element convey the value of this property.</p>
                        </def>
                    </gitem>
                </glist>
            </div2>
            <div2 id="formreplymsg">
                <head> Formulating a Reply Message</head>
                <p>The reply to a WS-Addressing compliant request message MUST be compliant to
                    WS-Addressing and be constructed according to the rules defined in this section.</p>
                <p>The following example illustrates a request message using message information
                    header blocks in a SOAP 1.2 message:</p>
                <example>
                    <head>Example request message.</head>
                    <eg xml:space="preserve">
&lt;S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope"
  xmlns:wsa="http://www.w3.org/2004/12/addressing"&gt;
  &lt;S:Header&gt; 
  &lt;wsa:MessageID&gt;http://example.com/someuniquestring
    &lt;/wsa:MessageID&gt;
    &lt;wsa:ReplyTo&gt; 
    &lt;wsa:Address&gt;http://business456.example/client1&lt;/wsa:Address&gt;
    &lt;/wsa:ReplyTo&gt;
    &lt;wsa:To S:mustUnderstand="1"&gt;mailto:joe@fabrikam123.example&lt;/wsa:To&gt;
    &lt;wsa:Action&gt;http://fabrikam123.example/mail/Delete&lt;/wsa:Action&gt;
  &lt;/S:Header&gt;
  &lt;S:Body&gt;
    &lt;f123:Delete&gt;     
       &lt;maxCount&gt;42&lt;/maxCount&gt;
    &lt;/f123:Delete&gt;
  &lt;/S:Body&gt;
&lt;/S:Envelope&gt;
      </eg>
                </example>
                <p>This message would have the following property values:</p>
                <p> [destination] The URI mailto:joe@fabrikam123.example</p>
                <p> [reply endpoint] The endpoint with [address] http://business456.example/client1</p>
                <p> [action] http://fabrikam123.example/mail/Delete</p>
                <p> [message id] http://example.com/someuniquestring</p>
                <p>The following example illustrates a reply message using message information
                    header blocks in a SOAP 1.2 message:</p>
                <example>
                    <head>Example response message.</head>
                    <eg xml:space="preserve">
&lt;S:Envelope
  xmlns:S="http://www.w3.org/2003/05/soap-envelope" 
  xmlns:wsa="http://www.w3.org/2004/12/addressing"&gt;
  &lt;S:Header&gt;
    &lt;wsa:MessageID&gt;
      http://example.com/someotheruniquestring
    &lt;/wsa:MessageID&gt;
    &lt;wsa:RelatesTo&gt;
      http://example.com/someuniquestring
    &lt;/wsa:RelatesTo&gt;
    &lt;wsa:To S:mustUnderstand="1"&gt;
      http://business456.example/client1
    &lt;/wsa:To&gt;
    &lt;wsa:Action&gt;http://fabrikam123.example/mail/DeleteAck&lt;/wsa:Action&gt;
  &lt;/S:Header&gt;
  &lt;S:Body&gt;
    &lt;f123:DeleteAck/&gt;
  &lt;/S:Body&gt;
&lt;/S:Envelope&gt;
      </eg>
                </example>
                <p>This message would have the following property values:</p>
                <p> [destination] http://business456.example/client1</p>
                <p> [action] http://fabrikam123.example/mail/DeleteAck</p>
                <p> [message id] http://example.com/someotheruniquestring</p>
                <p> [relationship] (wsa:Reply, http://example.com/someuniquestring)</p>
            </div2>
        </div1>
        <div1 id="_Toc77464336">
            <head> References</head>
            <blist>
                <bibl key="WS-Addressing-SOAP" id="WSADDR-SOAP" href="http://www.w3.org/TR/2004/WD-ws-addr-soap-20041208" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
                    <titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Web Services Addressing - SOAP Binding</titleref>, M. Gudgin, M.
                    Hadley, Editors.</bibl>
                <bibl key="WS-Addressing-WSDL" id="WSADDR-WSDL" href="http://www.w3.org/TR/2004/WD-ws-addr-wsdl-20041208" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
                    <titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Web Services Addressing - WSDL Binding</titleref>, M. Gudgin, M.
                    Hadley, Editors.</bibl>
                <bibl key="WSDL 2.0" id="WSDL20" href="" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
                    <titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Web Services Description Language 2.0</titleref>, TBD.</bibl>
                <bibl key="IETF RFC 2119" href="http://www.ietf.org/rfc/rfc2119.txt" id="RFC2119" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
                    <titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Key words for use in RFCs to Indicate Requirement Levels</titleref>,
                    S. Bradner, Author. Internet Engineering Task Force, June 1999. Available at
                    http://www.ietf.org/rfc/rfc2119.txt. </bibl>
                <bibl id="RFC2396" key="RFC 2396bis" href="http://www.ietf.org/internet-drafts/draft-fielding-uri-rfc2396bis-07.txt" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
                    T. Berners-Lee, et al, "Uniform Resource Identifier (URI): Generic Syntax,",
                    W3C/MIT, July 2004.</bibl>
                <bibl id="XML10" key="XML 1.0" href="http://www.w3.org/TR/2000/REC-xml-20001006" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
                    <titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Extensible Markup Language (XML) 1.0 (Second Edition)</titleref>, T.
                    Bray, J. Paoli, C. M. Sperberg-McQueen, and E. Maler, Editors. World Wide Web
                    Consortium, 10 February 1998, revised 6 October 2000. This version of the XML
                    1.0 Recommendation is http://www.w3.org/TR/2000/REC-xml-20001006. The <loc href="http://www.w3.org/TR/REC-xml" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">latest version of XML 1.0</loc> is
                    available at http://www.w3.org/TR/REC-xml. </bibl>
                <bibl id="XMLNS" key="XML Namespaces" href="http://www.w3.org/TR/1999/REC-xml-names-19990114" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
                    <titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Namespaces in XML</titleref>, T. Bray, D. Hollander, and A. Layman,
                    Editors. World Wide Web Consortium, 14 January 1999. This version of the XML
                    Information Set Recommendation is
                    http://www.w3.org/TR/1999/REC-xml-names-19990114. The <loc href="http://www.w3.org/TR/REC-xml-names" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">latest version of Namespaces in
                    XML</loc> is available at http://www.w3.org/TR/REC-xml-names. </bibl>
                <bibl id="XMLInfoSet" key="XML Information Set" href="http://www.w3.org/TR/2001/REC-xml-infoset-20011024" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
                    <titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">XML Information Set</titleref>, J. Cowan and R. Tobin, Editors. World
                    Wide Web Consortium, 24 October 2001. This version of the XML Information Set
                    Recommendation is http://www.w3.org/TR/2001/REC-xml-infoset-20011024. The <loc href="http://www.w3.org/TR/xml-infoset" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">latest version of XML Information
                    Set</loc> is available at http://www.w3.org/TR/xml-infoset. </bibl>
                <bibl id="XMLSchemaP1" key="XML Schema Structures" href="http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
                    <titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">XML Schema Part 1: Structures</titleref>, H. Thompson, D. Beech, M.
                    Maloney, and N. Mendelsohn, Editors. World Wide Web Consortium, 2 May 2001. This
                    version of the XML Schema Part 1 Recommendation is
                    http://www.w3.org/TR/2001/REC-xmlschema-1-20010502. The <loc href="http://www.w3.org/TR/xmlschema-1/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">latest version of XML Schema Part
                    1</loc> is available at http://www.w3.org/TR/xmlschema-1. </bibl>
                <bibl key="XML Schema Datatypes" id="XMLSchemaP2" href="http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
                    <titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">XML Schema Part 2: Datatypes</titleref>, P. Byron and A. Malhotra,
                    Editors. World Wide Web Consortium, 2 May 2001. This version of the XML Schema
                    Part 2 Recommendation is http://www.w3.org/TR/2001/REC-xmlschema-2-20010502. The
                        <loc href="http://www.w3.org/TR/xmlschema-2/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">latest version of XML Schema
                        Part 2</loc> is available at http://www.w3.org/TR/xmlschema-2. </bibl>
                <bibl id="SOAP12-PART1" key="SOAP 1.2 Part 1: Messaging Framework" href="http://www.w3.org/TR/2003/REC-soap12-part1-20030624/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
                    <titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">SOAP Version 1.2 Part 1: Messaging Framework</titleref>, M. Gudgin, M.
                    Hadley, N. Mendelsohn, J-J. Moreau, H. Frystyk Nielsen, Editors. World Wide Web
                    Consortium, 24 June 2003. This version of the "SOAP Version 1.2 Part 1:
                    Messaging Framework" Recommendation is
                    http://www.w3.org/TR/2003/REC-soap12-part1-20030624/. The <loc href="http://www.w3.org/TR/soap12-part1/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">latest version of "SOAP Version
                        1.2 Part 1: Messaging Framework"</loc> is available at
                    http://www.w3.org/TR/soap12-part1/. </bibl>
                <bibl id="WSDL11" key="WSDL 1.1" href="http://www.w3.org/TR/2001/NOTE-wsdl-20010315" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">E. Christensen, et al,
                        <titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Web Services Description Language (WSDL) 1.1</titleref>, March 2001.</bibl>
                <bibl id="WS-Security" key="WS-Security" href="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0.pdf" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
                    OASIS, <titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Web Services Security: SOAP Message Security</titleref>, March 2004.</bibl>
            </blist>
        </div1>
    </body>
    <back>
        <inform-div1 id="_Toc77464335">
            <head> Acknowledgements </head>
            <p>TBD</p>
        </inform-div1>
        <inform-div1 id="changelog">
            <head>Change log</head>
            <p>Placeholder for auto change log generation.</p>
        </inform-div1>
    </back>
</spec>
