<?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-soap.xml,v 1.1 2004/12/08 21:28:59 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 - SOAP Binding</title>
        <w3c-designation>http://www.w3.org/TR/2004/WD-ws-addr-soap-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-soap-20041208" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://www.w3.org/TR/2004/WD-ws-addr-soap-20041208</loc>
        </publoc> <altlocs>
	<loc role="postscript" href="ws-addr-soap.ps" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">postscript</loc>
	<loc role="pdf" href="ws-addr-soap.pdf" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">PDF</loc>
	<loc role="xml" href="ws-addr-soap.xml" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">XML</loc>
	<loc role="plain" href="ws-addr-soap.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-soap" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://www.w3.org/TR/ws-addr-soap</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 SOAP Binding (this document) defines the
                binding of the abstract properties defined in Web Services Addressing Core to SOAP Messages.</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 - SOAP Binding 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:28:59 $</p>
        </revisiondesc>
    </header>
    <body>
        <div1 id="tocRange">
            <head> Introduction</head>
            <p>Web Services Addressing Core<bibref ref="WSADDR-CORE"/> 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. Web Services Addressing SOAP Binding (this document) defines the
                binding of the abstract properties defined in Web Services Addressing Core to SOAP Messages.</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"
         &lt;wsa:MessageID&gt;
(004)      http://example.com/someuniquestring
(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 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="nsrefs"/>. Note that the choice of any namespace prefix
                    is arbitrary and not semantically significant (see [<bibref ref="XMLNS"/> ]).</p>
                <table id="nsrefs" border="1" summary="Namespace prefixes usage in this specification">
                    <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 is defined in terms of the XML Information Set [<bibref ref="XMLInfoSet"/>]. WS-Addressing is conformant to the SOAP 1.2 [<bibref ref="SOAP12-PART1"/>] processing model and is also compatible with SOAP
                        1.1[<bibref ref="SOAP11"/>] for backwards compatibility. WS-Addressing may
                    be used with WSDL [<bibref ref="WSDL20"/>] described services as described in
                    Web Services Addressing - WSDL Binding[<bibref ref="WSADDR-WSDL"/>]. The
                    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>Binding Endpoint References</head>
            <p>This section defines the binding of Endpoint references to SOAP messages.</p>
            <p>When a message needs to be addressed to the endpoint, the information contained in
                the endpoint reference is mapped to the message according to a transformation that
                is dependent on the protocol and data representation used to send the message.
                Protocol-specific mappings (or bindings) will define how the information in the
                endpoint reference is copied to message and protocol fields. This specification
                defines the SOAP binding for endpoint references. This mapping MAY be explicitly
                replaced by other bindings (defined as WSDL bindings or as policies); however, in
                the absence of an applicable policy stating that a different mapping must be used,
                the SOAP binding defined here is assumed to apply. To ensure interoperability with a
                broad range of devices, all conformant implementations MUST support the SOAP binding.</p>
            <p>The SOAP binding for endpoint references is defined by the following two rules:</p>
            <ulist>
                <item>
                    <p>The [address] property in the endpoint reference is copied in the
                        [destination] message information property. The infoset representation of
                        the [destination] property becomes a header block in the SOAP message.</p>
                </item>
                <item>
                    <p>Each [reference property] and [reference parameter] element becomes a header
                        block in the SOAP message. The element information item of each [reference
                        property] or [reference parameter] (including all of its [children],
                        [attributes] and [in-scope namespaces]) is to be added as a header block in
                        the new message.</p>
                </item>
            </ulist>
            <p>The next example shows how the default SOAP binding for endpoint references is used
                to construct a message addressed to the endpoint:</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:ReferenceProperties&gt;
       &lt;fabrikam:CustomerKey&gt;123456789&lt;/fabrikam:CustomerKey&gt;
   &lt;/wsa:ReferenceProperties&gt;
   &lt;wsa:ReferenceParameters&gt;
       &lt;fabrikam:ShoppingCart&gt;ABCDEFG&lt;/fabrikam:ShoppingCart&gt;
   &lt;/wsa:ReferenceParameters&gt;
&lt;/wsa:EndpointReference&gt;
      </eg>
            </example>
            <p>According to the mapping rules stated above, the address value is copied in the "To"
                header and the "CustomerKey" element should be copied literally as a header in a
                SOAP message addressed to this endpoint. The SOAP message would look as follows:</p>
            <example>
                <head>Example endpoint reference mapped to SOAP message header blocks.</head>
                <eg xml:space="preserve">
&lt;S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope"
         xmlns:wsa="..." xmlns:fabrikam="... "&gt;
   &lt;S:Header&gt;
     ...
    &lt;wsa:To&gt;http://www.fabrikam123.example/acct&lt;/wsa:To&gt;
    &lt;fabrikam:CustomerKey&gt;123456789&lt;/fabrikam:CustomerKey&gt;
    &lt;fabrikam:ShoppingCart&gt;ABCDEFG&lt;/fabrikam:ShoppingCart&gt;
     ...
   &lt;/S:Header&gt;
   &lt;S:Body&gt;
     ...
   &lt;/S:Body&gt;
&lt;/S:Envelope&gt;
      </eg>
            </example>
        </div1>
        <div1 id="_Toc77464328">
            <head>Faults</head>
            <p>The faults defined in this section are generated if the condition stated in the
                preamble in each subsection is met. They are sent to the [fault endpoint], if
                present and valid. Otherwise they are sent to the [reply endpoint] if present. If
                neither is present faults may be sent to the [source endpoint].</p>
            <p>Endpoints compliant with this specification MUST include required message information
                headers on all fault messages. Fault messages are correlated as replies using the
                [relationship] property as defined in Section 3. The [action] property below
                designates WS-Addressing fault messages (this URI is also used as the default Action
                value for WSDL fault messages, as described in Section 3.3.2):</p>
            <eg xml:space="preserve">
http://www.w3.org/2004/12/addressing/fault
</eg>
            <p>The definitions of faults use the following properties:</p>
            <p> [Code] The fault code.</p>
            <p> [Subcode] The fault subcode.</p>
            <p> [Reason] The English language reason element.</p>
            <p> [Detail] The detail element. If absent, no detail element is defined for the fault.</p>
            <p>The properties above bind to a SOAP 1.2 fault as follows:</p>
            <example>
                <head>Binding of fault properties to SOAP 1.2 messages.</head>
                <eg xml:space="preserve">
&lt;S:Envelope&gt;
 &lt;S:Header&gt;
   &lt;wsa:Action&gt;
     http://www.w3.org/2004/12/addressing/fault
   &lt;/wsa:Action&gt;
   &lt;!-- Headers elided for clarity.  --&gt;
 &lt;/S:Header&gt;
 &lt;S:Body&gt;
  &lt;S:Fault&gt;
   &lt;S:Code&gt;
    &lt;S:Value&gt;[Code]&lt;/S:Value&gt;
     &lt;S:Subcode&gt;
    &lt;S:Value&gt;[Subcode]&lt;/S:Value&gt;
     &lt;/S:Subcode&gt;
   &lt;/S:Code&gt;
   &lt;S:Reason&gt;
     &lt;S:Text xml:lang="en"&gt;[Reason]&lt;/S:Text&gt;
   &lt;/S:Reason&gt;
   &lt;S:Detail&gt;
     [Detail]
  &lt;/S:Detail&gt;   
  &lt;/S:Fault&gt;
 &lt;/S:Body&gt;
&lt;/S:Envelope&gt;
      </eg>
            </example>
            <p>The SOAP 1.1 fault is less expressive and map only [Subcode] and [Reason]. These the
                properties bind to a SOAP 1.1 fault as follows:</p>
            <example>
                <head>Binding of fault properties to SOAP 1.1 messages.</head>
                <eg xml:space="preserve">
&lt;S11:Envelope&gt;
 &lt;S11:Body&gt;
  &lt;S11:Fault&gt;
   &lt;faultcode&gt;[Subcode]&lt;/faultcode&gt;
   &lt;faultstring xml:lang="en"&gt;[Reason]&lt;/faultstring&gt;
  &lt;/S11:Fault&gt;
 &lt;/S11:Body&gt;
&lt;/S11:Envelope&gt;
      </eg>
            </example>
            <div2 id="_Toc77464329">
                <head> Invalid Message Information Header</head>
                <p>A message information header cannot be processed.</p>
                <p> [Code] S:Sender</p>
                <p> [Subcode] wsa:InvalidMessageInformationHeader</p>
                <p> [Reason] A message information header is not valid and the message cannot be
                    processed. The validity failure can be either structural or semantic, e.g. a
                    [destination] that is not a URI or a [relationship] to a [message id] that was
                    never issued.</p>
                <p> [Detail] [invalid header]</p>
            </div2>
            <div2 id="_Toc77464330">
                <head> Message Information Header Required</head>
                <p>A required message information header is absent.</p>
                <p> [Code] S:Sender</p>
                <p> [Subcode] wsa:MessageInformationHeaderRequired</p>
                <p> [Reason] A required message information header, To, MessageID, or Action, is not present.</p>
                <p> [Detail] [Missing Header QName]</p>
            </div2>
            <div2 id="_Toc77464331">
                <head> Destination Unreachable</head>
                <p>No endpoint can be found capable of acting in the role of the [destination] property.</p>
                <p> [Code] S:Sender</p>
                <p> [Subcode] wsa:DestinationUnreachable</p>
                <p> [Reason] No route can be determined to reach the destination role defined by the
                    WS-Addressing To.</p>
                <p> [Detail] empty</p>
            </div2>
            <div2 id="_Toc55895108">
                <head> Action Not Supported</head>
                <p>The [action] property in the message is not supported at this endpoint.</p>
                <p>The contents of this fault are as follows:</p>
                <p> [Code] S:Sender</p>
                <p> [Subcode] wsa:ActionNotSupported</p>
                <p> [Reason] The [action] cannot be processed at the receiver.</p>
                <p> [Detail] [action]</p>
            </div2>
            <div2 id="_Toc77464333">
                <head> Endpoint Unavailable</head>
                <p>The endpoint is unable to process the message at this time either due to some
                    transient issue or a permanent failure. </p>
                <p>The endpoint may optionally include a RetryAfter parameter in the detail. The
                    source should not retransmit the message until this duration has passed.</p>
                <p> [Code] S:Receiver</p>
                <p> [Subcode] wsa:EndpointUnavailable</p>
                <p> [Reason] The endpoint is unable to process the message at this time.</p>
                <p> [Detail] &lt;wsa:RetryAfter ...&gt;[xs:NonNegativeInteger]&lt;/wsa:RetryAfter&gt;</p>
                <p> The following describes the attributes and elements listed above:</p>
                <glist>
                    <gitem>
                        <label>/wsa:RetryAfter</label>
                        <def>
                            <p>This element (of type xs:NonNegativeInteger) is a suggested minimum
                                duration in milliseconds to wait before retransmitting the message.
                                If this element is omitted from the detail, the value is infinite.</p>
                        </def>
                    </gitem>
                </glist>
                <glist>
                    <gitem>
                        <label>/wsa:RetryAfter/@{any}</label>
                        <def>
                            <p>These optional extensibility attributes do not affect processing.</p>
                        </def>
                    </gitem>
                </glist>
            </div2>
        </div1>
        <div1 id="_Toc77464334">
            <head> Security Considerations</head>
            <p>It is strongly recommended that the communication between services be secured using
                the mechanisms described in WS-Security [<bibref ref="WS-Security"/>]. In order to
                properly secure messages, the body and all relevant headers need to be included in
                the signature. Specifically, the message information headers described in this
                specification (e.g. &lt;wsa:To&gt;) need to be signed with the body in order
                to "bind" the two together. It should be noted that for messages traveling through
                intermediaries, it is possible that some or all of the message information headers
                may have multiple signatures when the message arrives at the ultimate receiver. It
                is strongly recommended that the initial sender include a signature to prevent any
                spoofing by intermediaries.</p>
            <p>Whenever an address is specified (e.g. &lt;wsa:From&gt;,
                &lt;wsa:ReplyTo&gt;, &lt;wsa:FaultTo&gt;, ...), the processor should
                ensure that a signature is provided with claims allowing it to speak for the
                specified target in order to prevent certain classes of attacks (e.g. redirects). As
                well, care should be taken if the specified endpoint contains reference properties
                or parameters as unverified endpoint references could cause certain classes of
                header insertion attacks.</p>
            <p>The message information headers blocks may have their contents encrypted in order to
                obtain end-to-end privacy, but care should be taken to ensure that intermediary
                processors have access to required information (e.g. &lt;wsa:To&gt;).</p>
            <p>Some processors may use message identifiers (&lt;wsa:MessageID&gt;) as part
                of a uniqueness metric in order to detect replays of messages. Care should be taken
                to ensure that a unique identifier is actually used. For example, it may be
                appropriate in some scenarios to combine the message identifier with a timestamp.</p>
            <p>The following list summarizes common classes of attacks that apply to this protocol
                and identifies the mechanism to prevent/mitigate the attacks:</p>
            <ulist>
                <item>
                    <p> Message alteration &#8211; Alteration is prevented by including
                        signatures of the message information using WS-Security.</p>
                </item>
            </ulist>
            <ulist>
                <item>
                    <p> Message disclosure &#8211; Confidentiality is preserved by encrypting
                        sensitive data using WS-Security.</p>
                </item>
            </ulist>
            <ulist>
                <item>
                    <p> Address spoofing &#8211; Address spoofing is prevented by ensuring that
                        all address are signed by a party authorized to speak for (or on behalf of)
                        the address.</p>
                </item>
            </ulist>
            <ulist>
                <item>
                    <p> Key integrity &#8211; Key integrity is maintained by using the
                        strongest algorithms possible (by comparing secured policies.</p>
                </item>
            </ulist>
            <ulist>
                <item>
                    <p> Authentication &#8211; Authentication may be established using the
                        mechanisms described in WS-Security.</p>
                </item>
            </ulist>
            <ulist>
                <item>
                    <p> Accountability &#8211; Accountability is a function of the type of and
                        strength of the key and algorithms being used. In many cases, a strong
                        symmetric key provides sufficient accountability. However, in some
                        environments, strong PKI signatures are required.</p>
                </item>
            </ulist>
            <ulist>
                <item>
                    <p> Availability &#8211; All reliable messaging services are subject to a
                        variety of availability attacks. Replay detection is a common attack and it
                        is recommended that this be addressed by the mechanisms described in
                        WS-Security and/or caching of message identifiers. Other attacks, such as
                        network-level denial of service attacks are harder to avoid and are outside
                        the scope of this specification. That said, care should be taken to ensure
                        that minimal state is saved prior to any authenticating sequences.</p>
                </item>
            </ulist>
            <ulist>
                <item>
                    <p> Replay &#8211; Messages may be replayed for a variety of reasons. To
                        detect and eliminate this attack, mechanisms should be used to identify
                        replayed messages such as the timestamp/nonce outlined in WS-Security.
                        Alternatively, and optionally, other technologies, such as sequencing, can
                        also be used to prevent replay of application messages.</p>
                </item>
            </ulist>
        </div1>
        <div1 id="_Toc77464336">
            <head> References</head>
            <blist>
                <bibl key="WS-Addressing-Core" id="WSADDR-CORE" href="http://www.w3.org/TR/2004/WD-ws-addr-core-20041208" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
                    <titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Web Services Addressing - Core</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="SOAP11" key="SOAP 1.1" href="http://www.w3.org/TR/2000/NOTE-SOAP-20000508/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">Don Box, et al,
                        <titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Simple Object Access Protocol (SOAP) 1.1</titleref>, May 2000.</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 automatic change log generation</p>
        </inform-div1>
    </back>
</spec>
