W3C

2005-02-15 diff-marked version: Web Services Addressing 1.0 - Core

W3C Working Draft 8 December 2004 15 February 2005

This version:
<a href= "http://www.w3.org/TR/2004/WD-ws-addr-core-20041208"> http://www.w3.org/TR/2004/WD-ws-addr-core-20041208 http://www.w3.org/TR/2005/WD-ws-addr-core-20050215
Latest version:
http://www.w3.org/TR/ws-addr-core
Previous versions:
http://www.w3.org/TR/2004/WD-ws-addr-core-20041208
Editors:
Martin Gudgin, Microsoft Corp
Marc Hadley, Sun Microsystems, Inc

This document is also available in these non-normative formats: postscript , PDF , XML , and  plain text .


Abstract

Web Services Addressing provides transport-neutral mechanisms to address Web services and messages. Web Services Addressing 1.0 - Core (this document) defines a set of abstract properties and an XML Infoset [ XML Information Set ] representation thereof to identify reference Web service endpoints services and to secure facilitate end-to-end identification addressing 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.

Status of this Document

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 W3C technical reports index at http://www.w3.org/TR/.

This is the <a href= "http://www.w3.org/2004/02/Process-20040205/tr.html#first-wd"> First second Public Working Draft of the Web Services Addressing 1.0 - Core specification for review by W3C members and other interested parties. It has been produced by the Web Services Addressing Working Group (WG), which is part of the W3C Web Services Activity .

In this This Working Draft, Draft reflects the Web Services Addressing Working Group has, in keeping with its <a href= "http://www.w3.org/2004/09/wsa-charter.html"> charter </a>, separated current position of the deleted text: WS-Addressing Member Submission into three separate specifications: Core, SOAP Binding, and WSDL Binding. The Working Group expects to publish an updated draft in Group. A diff-marked version against the near future incorporting more resolutions from its <a href= "http://www.w3.org/2002/ws/addr/wd-issues/"> issues previous version of this document is available. For a detailed list of changes since the last publication of this document, please refer to appendix B. Change Log . A list of remaining issues is also available.

Discussion of this document takes place on the deleted text: public public public-ws-addressing@w3.org mailing list ( public archive ). Comments on this specification should be sent to this mailing list.

This document was produced under the 5 February 2004 W3C Patent Policy . The Working Group maintains a public list of patent disclosures 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 section 6 of the W3C Patent Policy .

Per section 4 of the W3C Patent Policy , 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.

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.

Editorial note  
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.

Short Table of Contents

1. Introduction
2. Endpoint References
3. Message Addressing Properties
4. References
A. <a href="#_Toc77464335"> Acknowledgements (Non-Normative)
B. Change log Log (Non-Normative)


Table of Contents

1. Introduction
    1.1 Notational Conventions
    1.2 Namespaces
2. Endpoint References
    2.1 Information Model for Endpoint References
    2.2 Endpoint Reference XML Infoset Representation
    2.3 Endpoint Reference Comparison
    2.4 Endpoint Reference Lifecycle
3. Message Addressing Properties
    3.1 XML Infoset Representation of Message Addressing Properties
    3.2 Formulating a Reply Message
4. References

Appendices

A. <a href="#_Toc77464335"> Acknowledgements (Non-Normative)
B. Change log Log (Non-Normative)
    B.1 Changes Since First Working Draft
    B.2 Changes Since Submission


1. Introduction

Web Services Addressing (WS-Addressing) defines two constructs constructs, message addressing properties and endpoint references, that convey normalize the information deleted text: that is typically provided by transport protocols and messaging systems: endpoint references and message addressing properties. These constructs normalize this underlying information into systems in a uniform format way that can be processed independently is independent of any particular transport or application. messaging system.

A Web service endpoint is a (referenceable) entity, processor, or resource to which Web service messages can be targeted. addressed. Endpoint references convey the information needed to identify/reference a Web service endpoint, and may be used in several different ways: </p> <ul> <li> <p> To convey the information needed to access address a Web service endpoint </p> </li> <li> <p> To provide addresses for individual messages sent to and from Web services endpoint.

deleted text: </li> </ul>

To deal with this last usage case this This specification defines a family of message addressing properties that deleted text: allows uniform addressing of messages independent of underlying transport. These message addressing properties convey end-to-end message characteristics including addressing references for source and destination endpoints as well as and message identity. identity that allows uniform addressing of messages independent of the underlying transport.

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.

The following example illustrates the use of these mechanisms in a SOAP 1.2 message being sent from http://business456.example/client1 http://example.com/business/client1 to http://fabrikam123.example/Purchasing: http://example.com/fabrikam/Purchasing:

Example 1-1. Use of message addressing properties in a SOAP 1.2 message.

(001) <S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope"      


                xmlns:wsa="http://www.w3.org/2004/12/addressing">



                xmlns:wsa="http://www.w3.org/2005/02/addressing">


(002)   <S:Header>
(003)    <wsa:MessageID>
(004)      http://example.com/6B29FC40-CA47-1067-B31D-00DD010662DA
(005)    </wsa:MessageID>
(006)    <wsa:ReplyTo>


(007)      <wsa:Address>http://business456.example/client1</wsa:Address>



(007)      <wsa:Address>http://example.com/business/client1</wsa:Address>


(008)    </wsa:ReplyTo>


(009)    <wsa:To>http://fabrikam123.example/Purchasing</wsa:To>
(010)    <wsa:Action>http://fabrikam123.example/SubmitPO</wsa:Action>



(009)    <wsa:To>http://example.com/fabrikam/Purchasing</wsa:To>
(010)    <wsa:Action>http://example.com/fabrikam/SubmitPO</wsa:Action>


(011)   </S:Header>
(012)   <S:Body>
(013)     ...
(014)   </S:Body>
(015) </S:Envelope>

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

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.

1.1 Notational Conventions

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 [ IETF RFC 2119 ].

When describing abstract data models, this specification uses the notational convention used by the XML Infoset [ XML Information Set ]. Specifically, abstract property names always appear in square brackets (e.g., [some property]).

When describing concrete XML schemas [ XML Schema Structures , XML Schema Datatypes ], this specification uses the notational convention of WS-Security [ 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 (<xs:any/>). The use of @{any} indicates the presence of an attribute wildcard (<xs:anyAttribute/>).

1.2 Namespaces

This specification uses a number of namespace prefixes throughout; they are listed in Table 1-1 . Note that the choice of any namespace prefix is arbitrary and not semantically significant (see [ XML Namespaces ]).

deleted text: <br />
Table 1-1. Prefixes and Namespaces used in this specification
Prefix Namespace
S http://www.w3.org/2003/05/soap-envelope
S11 http://schemas.xmlsoap.org/soap/envelope
wsa http://www.w3.org/2004/12/addressing http://www.w3.org/2005/02/addressing
xs http://www.w3.org/2001/XMLSchema

WS-Addressing may be used with SOAP [ SOAP 1.2 Part 1: Messaging Framework ] as described in Web Services Addressing 1.0 - SOAP Binding[ WS-Addressing-SOAP ]. WS-Addressing may be used with WSDL [ WSDL 2.0 ] described services as described in Web Services Addressing 1.0 - WSDL Binding[ WS-Addressing-WSDL ]. Examples in this specification use an XML 1.0 [ XML 1.0 ] representation but this is not a requirement.

All information items defined by WS-Addressing are identified by the XML namespace URI [ XML Namespaces ] "http://www.w3.org/2004/12/addressing". "http://www.w3.org/2005/02/addressing". A normative XML Schema [ XML Schema Structures , XML Schema Datatypes ] document can be obtained by dereferencing the XML namespace URI.

2. Endpoint References

This section defines the information model and syntax of an endpoint reference.

This specification introduces the endpoint reference, a construct designed to support the following usage scenarios:

2.1 Information Model for Endpoint References

An endpoint reference consists of the following abstract properties:

[address] : URI (mandatory)

An address URI that identifies for the endpoint. This may be a network address or a logical address.

[reference deleted text: properties] : xs:any (0..unbounded). </dt> <dd> <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[ <cite> <a href="#WSADDR-SOAP"> WS-Addressing-SOAP </a> </cite> ] 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 <a href= "#eprcomp"> <b> 2.3 Endpoint Reference Comparison </b> </a> </p> </dd> <dt class="label"> [reference parameters] : xs:any (0..unbounded).

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 1.0 - SOAP Binding[ WS-Addressing-SOAP ] describes the default binding for the SOAP protocol. deleted text: 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.

[selected port type] interface] : QName (0..1)

The A QName identifying a description of the primary portType sequences of the endpoint being conveyed, messages that a service sends and/or receives, see Web Services Addressing 1.0 - WSDL Binding Binding[ WS-Addressing-WSDL ] for more details.

[service-port] [service endpoint] : (QName, NCName (0..1)) (0..1)

The QName identifying the WSDL service element that contains A QName, NCName pair: the definition QName identifies a description of a set of endpoints at which a particular Web service is deployed; the NCName identifies one endpoint being conveyed, see in particular. See Web Services Addressing 1.0 - WSDL Binding Binding[ WS-Addressing-WSDL ] for more details.

[policies] : xsd:any (0..unbounded)

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.

2.2 Endpoint Reference XML Infoset Representation

This section defines an XML Infoset-based representation for an endpoint reference as both an XML type (wsa:EndpointReferenceType) and as an XML element (<wsa:EndpointReference>).

The wsa:EndpointReferenceType type is used wherever a Web service endpoint is referenced. The following describes the contents of this type:

Example 2-1. Structure of the wsa:EndpointReference element.

<wsa:EndpointReference>
    <wsa:Address>xs:anyURI</wsa:Address>


    <wsa:ReferenceProperties>... </wsa:ReferenceProperties> ?



    <wsa:ReferenceParameters>... </wsa:ReferenceParameters> ?


    <wsa:PortType>xs:QName</wsa:PortType> ?
    <wsa:ServiceName PortName="xs:NCName"?>xs:QName</wsa:ServiceName> ?



    <wsa:InterfaceName>xs:QName</wsa:InterfaceName> ?
    <wsa:ServiceName EndpointName="xs:NCName"?>xs:QName</wsa:ServiceName> ?


    <wsa:Policies> ... </wsa:Policies>?


    <xs:any/<*



    <xs:any/>*


</wsa:EndpointReference>
      

The following describes the attributes and elements listed in the schema overview above:

/wsa:EndpointReference

This represents some element of type wsa:EndpointReferenceType. This example uses the predefined <wsa:EndpointReference> element, but any element of type wsa:EndpointReferenceType may be used.

/wsa:EndpointReference/wsa:Address

This REQUIRED element (of type xs:anyURI) specifies the [address] property of the endpoint reference. This address may be a logical address deleted text: or identifier for the service endpoint.

deleted text: /wsa:EndpointReference/wsa:ReferenceProperties/ </dt> <dd> <p> This OPTIONAL element contains the elements that convey the [reference properties] of the reference. </p> </dd> <dt class="label"> /wsa:EndpointReference/wsa:ReferenceProperties/{any} </dt> <dd> <p> Each child element of ReferenceProperties represents an individual [reference property]. </p> </dd> <dt class="label"> /wsa:EndpointReference/wsa:ReferenceParameters/

This OPTIONAL element contains the elements that convey the [reference parameters] of the reference.

/wsa:EndpointReference/wsa:ReferenceParameters/{any}

Each child element of ReferenceParameters represents an individual [reference parameter].

/wsa:EndpointReference/wsa:PortType /wsa:EndpointReference/wsa:InterfaceName

This OPTIONAL element (of type xs:Qname) specifies the value of the [selected port type] interface] property of the endpoint reference, see Web Services Addressing 1.0 - WSDL Binding Binding[ WS-Addressing-WSDL ] for more details..

/wsa:EndpointReference/wsa:ServiceName

This OPTIONAL element (of type xs:QName) specifies the <wsdl:service> definition that contains a WSDL description value of the endpoint being referenced, [service endpoint] property, see Web Services Addressing 1.0 - WSDL Binding Binding[ <a href="#WSADDR-WSDL"> WS-Addressing-WSDL ] for more details..

/wsa:EndpointReference/wsa:ServiceName/@PortName /wsa:EndpointReference/wsa:ServiceName/@EndpointName

This OPTIONAL attribute (of type xs:NCName) specifies the name of the <wsdl:port> definition that corresponds to the endpoint being referenced, a particular endpoint, see Web Services Addressing 1.0 - WSDL Binding Binding[ WS-Addressing-WSDL ] for more details.

/wsa:EndpointReference/wsa:Policies

This OPTIONAL element contains policies that are relevant to the interaction with the endpoint.

/wsa:EndpointReference/wsa:Policies/{any}

Each child element of Policies represents an individual [policy].

/wsa:EndpointReference/{any}

This is an extensibility mechanism to allow additional elements to be specified.

/wsa:EndpointReference/@{any}

This is an extensibility mechanism to allow additional attributes to be specified. Some examples in this specification show use of this extensibility point to include a wsdlLocation[ WSDL 2.0 ] attribute to provide a hint for the location of a WSDL description of the [selected interface] and [service endpoint] properties.

The following shows an example endpoint reference. This element references the port of type "fabrikam:InventoryPortType" [selected interface] "fabrikam:Inventory" at the endpoint URI "http://www.fabrikam123.example/acct". "http://example.com/www.fabrikam/acct". Note the use of the WSDL[ WSDL 2.0 ] wsdlLocation attribute.

Example 2-2. Example endpoint reference.



<wsa:EndpointReference xmlns:wsa="..." xmlns:fabrikam="...">
   <wsa:Address>http://www.fabrikam123.example/acct</wsa:Address>
   <wsa:PortType>fabrikam:InventoryPortType</wsa:PortType>



<wsa:EndpointReference
     xmlns:wsa="http://www.w3.org/2005/02/addressing"
     xmlns:fabrikam="http://example.com/fabrikam"
     xmlns:wsdli="http://www.w3.org/2004/08/wsdl-instance"
     wsdli:wsdlLocation="http://example.com/fabrikam
       http://example.com/fabrikam/fabrikam.wsdl">
   <wsa:Address>http://example.com/fabrikam/acct</wsa:Address>
   <wsa:InterfaceName>fabrikam:Inventory</wsa:InterfaceName>


</wsa:EndpointReference>
      

2.3 Endpoint Reference Comparison

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.

The following rules clarify rule clarifies the relation between the behaviors of the endpoints represented by two endpoint references with the same [address] and the same [reference properties]. [address];

  • 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 and other metadata applicable to the two references are the same.

  • <li>

In particular, However, the policies applicable to metadata embedded in each of the two endpoints are EPRs MAY differ, as the same regardless metadata carried by an EPR is not necessarily a complete statement of the values of any metadata pertaining to the endpoint. Moreover, while embedded [policies]. Embedded policies are not authoritative and metadata is necessarily valid at the time the EPR is initially created it may be become stale or incoherent at a later point in time.

To deal with conflicts between the policies associated with embedded metadata of two EPRs, or between embedded metadata and metadata obtained from a different source, or to ascertain the endpoint. current validity of embedded metadata, mechanisms that are outside of the scope of this specification, such as EPR life cycle information [see 2.4 Endpoint Reference Lifecycle ] or retrieval of metadata from an authoritative source, SHOULD be used.

deleted text: </li> </ul>

The [address] properties of two endpoint references are compared according to Section 6 of [ RFC 2396bis 3986 ]. deleted text: The [reference properties] of two endpoint references are equal if: </p> <ul> <li> <p> they contain the same number of individual properties;

deleted text: </li> <li> <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> </li> </ul>

Therefore, a consuming application should assume that different XML Schemas, WSDL definitions and policies apply to endpoint references whose addresses differ.

2.4 Endpoint Reference Lifecycle

This specification does not define a lifecycle model for endpoint references and does not address the question of time-to-live for endpoint references. Other specifications that build on or reference properties differ. use WS-Addressing may define a lifecycle model for endpoint references created according to that specification.

3. Message Addressing Properties

This section defines the information model and syntax of message addressing properties.

Message addressing properties enable the identification and location of provide references for the endpoints involved in an interaction. The use of these properties to support specific interaction is in general defined by both the semantics of the properties themselves and the implicit or explicit contract that governs the message exchange. If explicitly available, this contract can take different forms including but not being limited to WSDL MEPs and interfaces; business processes and e-commerce specifications, among others, can also be used to define explicit contracts between the parties. 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 in this case can be either an application message, a fault, or any other message. Note, however, that reply messages may be sent as part of other message exchanges as well, and are not restricted to the usual single Request, single Reply pattern, or to a particular WSDL MEP. The contract between the interacting parties may specify that multiple or even a variable number or replies be delivered.

Message addressing properties collectively augment a message with the following abstract properties to support one way, request reply, and any other interaction pattern:

[destination] : URI (mandatory)

The address of the intended receiver of this message.

[source endpoint] : endpoint reference (0..1)

Reference of the endpoint where the message originated from.

[reply endpoint] : endpoint reference (0..1)

An endpoint reference that identifies for 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 <a href="#formreplymsg"> 3.2 Formulating a Reply Message . If deleted text: 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.

[fault endpoint] : endpoint reference (0..1)

An endpoint reference that identifies for the intended receiver for faults related to this message. When formulating a fault message as defined in 3.2 Formulating a Reply Message , the sender MUST use the contents of the [fault endpoint] endpoint], when present, of the message being replied to to formulate the fault message. If deleted text: 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.

[action] : URI (mandatory)

An identifier that uniquely (and opaquely) identifies the semantics implied by this message.

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 1.0 - WSDL Binding Binding[ WS-Addressing-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.

[message id] : URI (0..1)

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.

[relationship] : (QName, (URI, URI) (0..unbounded)

A pair of values that indicate how this message relates to another message. The type of the relationship is identified by a QName. URI. 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": http://www.w3.org/2004/12/addressing http://www.w3.org/2005/02/addressing/id/unspecified

This specification has one predefined relationship type as shown in Table 3-1 .

<br /> <table border="1" summary="Predefined [relationship] values">
Table 3-1. Description of the QName used in Predefined [relationship] values
QName URI Description
wsa:Reply http://www.w3.org/2005/02/addressing/reply Indicates that this is a reply to the message identified by the URI.

A reply message MUST contain a [relationship] property consisting of wsa:Reply the predefined reply URI and the message id property of the request message.

The dispatching of incoming messages is based on two message properties. The properties: the mandatory "destination" and "action" fields identify indicate the target processing location and the verb or intent of the message. message respectively.

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: http://www.w3.org/2004/12/addressing http://www.w3.org/2005/02/addressing/role/anonymous

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.

3.1 XML Infoset Representation of Message Addressing Properties

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.

The following describes the XML Infoset representation of message addressing properties:

Example 3-1. XML Infoset representation of message addressing properties.

<wsa:MessageID> xs:anyURI </wsa:MessageID>
<wsa:RelatesTo RelationshipType="..."?>xs:anyURI</wsa:RelatesTo>
<wsa:To>xs:anyURI</wsa:To>
<wsa:Action>xs:anyURI</wsa:Action>
<wsa:From>endpoint-reference</wsa:From>
<wsa:ReplyTo>endpoint-reference</wsa:ReplyTo>
<wsa:FaultTo>endpoint-reference</wsa:FaultTo>

The following describes the attributes and elements listed in the schema overview above:

/wsa:MessageID

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.

/wsa:RelatesTo

This OPTIONAL (repeating) element information item contributes one abstract [relationship] property value, in the form of a (URI, QName) URI) 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.

/wsa:RelatesTo/@RelationshipType

This OPTIONAL attribute (of type xs:QName) xs:anyURI) conveys the relationship type as a QName. URI. When absent, the implied value of this attribute is wsa:Reply. http://www.w3.org/2005/02/addressing/reply .

/wsa:ReplyTo

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.

/wsa:From

This OPTIONAL element (of type wsa:EndpointReferenceType) provides the value for the [source endpoint] property.

/wsa:FaultTo

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.

/wsa:To

This REQUIRED OPTIONAL element (of type xs:anyURI) provides the value for the [destination] property. If this element is NOT present then the value of the [destination] property is "http://www.w3.org/2005/02/addressing/role/anonymous". Otherwise the [children] of this element convey the value of this property.

/wsa:Action

This REQUIRED element of type xs:anyURI conveys the [action] property. The [children] of this element convey the value of this property.

3.2 Formulating a Reply Message

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.

The following example illustrates a request message using message information header blocks in a SOAP 1.2 message:

Example 3-2. Example request message.

<S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope"


  xmlns:wsa="http://www.w3.org/2004/12/addressing">



  xmlns:wsa="http://www.w3.org/2005/02/addressing">


  <S:Header> 
  <wsa:MessageID>http://example.com/someuniquestring
    </wsa:MessageID>
    <wsa:ReplyTo> 


    <wsa:Address>http://business456.example/client1</wsa:Address>



    <wsa:Address>http://example.com/business/client1</wsa:Address>


    </wsa:ReplyTo>


    <wsa:To S:mustUnderstand="1">mailto:joe@fabrikam123.example</wsa:To>
    <wsa:Action>http://fabrikam123.example/mail/Delete</wsa:Action>



    <wsa:To S:mustUnderstand="1">mailto:fabrikam@example.com</wsa:To>
    <wsa:Action>http://example.com/fabrikam/mail/Delete</wsa:Action>


  </S:Header>
  <S:Body>


    <f123:Delete>     



    <f:Delete xmlns:f="http://example.com/fabrikam">     


       <maxCount>42</maxCount>


    </f123:Delete>



    </f:Delete>


  </S:Body>
</S:Envelope>
      

This message would have the following property values:

[destination] The URI mailto:joe@fabrikam123.example mailto:fabrikam@example.com

[reply endpoint] The endpoint with [address] http://business456.example/client1 http://example.com/business/client1

[action] http://fabrikam123.example/mail/Delete http://example.com/fabrikam/mail/Delete

[message id] http://example.com/someuniquestring

The following example illustrates a reply message using message information header blocks in a SOAP 1.2 message:

Example 3-3. Example response message.

<S:Envelope
  xmlns:S="http://www.w3.org/2003/05/soap-envelope" 


  xmlns:wsa="http://www.w3.org/2004/12/addressing">



  xmlns:wsa="http://www.w3.org/2005/02/addressing">


  <S:Header>
    <wsa:MessageID>
      http://example.com/someotheruniquestring
    </wsa:MessageID>
    <wsa:RelatesTo>
      http://example.com/someuniquestring
    </wsa:RelatesTo>
    <wsa:To S:mustUnderstand="1">


      http://business456.example/client1



      http://example.com/business/client1


    </wsa:To>


    <wsa:Action>http://fabrikam123.example/mail/DeleteAck</wsa:Action>



    <wsa:Action>http://example.com/fabrikam/mail/DeleteAck</wsa:Action>


  </S:Header>
  <S:Body>


    <f123:DeleteAck/>



    <f:DeleteAck xmlns:f="http://example.com/fabrikam"/>


  </S:Body>
</S:Envelope>
      

This message would have the following property values:

[destination] http://business456.example/client1 http://example.com/business/client1

[action] http://fabrikam123.example/mail/DeleteAck http://example.com/fabrikam/mail/DeleteAck

[message id] http://example.com/someotheruniquestring

[relationship] (wsa:Reply, http://example.com/someuniquestring)

4. References

[WS-Addressing-SOAP]
<a href= "http://www.w3.org/TR/2004/WD-ws-addr-soap-20041208"> Web Services Addressing 1.0 - SOAP Binding , M. Gudgin, M. Hadley, Editors.
[WS-Addressing-WSDL]
<a href= "http://www.w3.org/TR/2004/WD-ws-addr-wsdl-20041208"> Web Services Addressing 1.0 - WSDL Binding , M. Gudgin, M. Hadley, Editors.
[WSDL 2.0]
Web Services Description Language 2.0 , TBD. R. Chinnici, M. Gudgin, J. J. Moreau, J. Schlimmer, S. Weerawarana, Editors. World Wide Web Consortium, 3 August 2004. This version of the WSDL 2.0 specification is http://www.w3.org/TR/2004/WD-wsdl20-20040803. The latest version of WSDL 2.0 is available at http://www.w3.org/TR/wsdl20.
[IETF RFC 2119]
Key words for use in RFCs to Indicate Requirement Levels , S. Bradner, Author. Internet Engineering Task Force, June 1999. Available at http://www.ietf.org/rfc/rfc2119.txt.
[RFC 2396bis] 3986]
T. Berners-Lee, et al, "Uniform Resource Identifier (URI): Generic Syntax,", W3C/MIT, July 2004. January 2005. (See <a href= "http://www.ietf.org/internet-drafts/draft-fielding-uri-rfc2396bis-07.txt"> http://www.ietf.org/internet-drafts/draft-fielding-uri-rfc2396bis-07.txt http://www.ietf.org/rfc/rfc3986.txt .)
[XML 1.0]
Extensible Markup Language (XML) 1.0 (Second Edition) , 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 latest version of XML 1.0 is available at http://www.w3.org/TR/REC-xml.
[XML Namespaces]
Namespaces in XML , 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 latest version of Namespaces in XML is available at http://www.w3.org/TR/REC-xml-names.
[XML Information Set]
XML Information Set , 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 latest version of XML Information Set is available at http://www.w3.org/TR/xml-infoset.
[XML Schema Structures]
XML Schema Part 1: Structures , 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 latest version of XML Schema Part 1 is available at http://www.w3.org/TR/xmlschema-1.
[XML Schema Datatypes]
XML Schema Part 2: Datatypes , 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 latest version of XML Schema Part 2 is available at http://www.w3.org/TR/xmlschema-2.
[SOAP 1.2 Part 1: Messaging Framework]
SOAP Version 1.2 Part 1: Messaging Framework , 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 latest version of "SOAP Version 1.2 Part 1: Messaging Framework" is available at http://www.w3.org/TR/soap12-part1/.
[WSDL 1.1]
E. Christensen, et al, Web Services Description Language (WSDL) 1.1 , March 2001.
[WS-Security]
OASIS, Web Services Security: SOAP Message Security , March 2004.

<a name="_Toc77464335" id="_Toc77464335"> A. Acknowledgements (Non-Normative)

TBD This document is the work of the W3C Web Service Addressing Working Group .

Members of the Working Group are (at the time of writing, and by alphabetical order): Abbie Barbir (Nortel Networks), Rebecca Bergersen (IONA Technologies, Inc.), Andreas Bjärlestam (ERICSSON), Ugo Corda (SeeBeyond Technology Corporation), Francisco Curbera (IBM Corporation), Glen Daniels (Sonic Software), Paul Downey (BT), Jacques Durand (Fujitsu Limited), Michael Eder (Nokia), Robert Freund (Hitachi, Ltd.), Yaron Goland (BEA Systems, Inc.), Martin Gudgin (Microsoft Corporation), Arun Gupta (Sun Microsystems, Inc.), Hugo Haas (W3C/ERCIM), Marc Hadley (Sun Microsystems, Inc.), David Hull (TIBCO Software, Inc.), Yin-Leng Husband (HP), Anish Karmarkar (Oracle Corporation), Paul Knight (Nortel Networks), Philippe Le Hégaret (W3C/MIT), Mark Little (Arjuna Technologies Ltd.), Jonathan Marsh (Microsoft Corporation), Jeff Mischkinsky (Oracle Corporation), Nilo Mitra (ERICSSON), Eisaku Nishiyama (Hitachi, Ltd.), Mark Nottingham (BEA Systems, Inc.), Ales Novy (Systinet Inc.), David Orchard (BEA Systems, Inc.), Mark Peel (Novell, Inc.), Harris Reynolds (webMethods, Inc.), Tony Rogers (Computer Associates), Tom Rutt (Fujitsu Limited), Rich Salz (DataPower Technology, Inc.), Davanum Srinivas (Computer Associates), Jiri Tejkl (Systinet Inc.), Greg Truty (IBM Corporation), Steve Vinoski (IONA Technologies, Inc.), Pete Wenzel (SeeBeyond Technology Corporation), Steve Winkler (SAP AG), Ümit Yalçınalp (SAP AG).

Previous members of the Working Group were: @@@.

The people who have contributed to discussions on public-ws-addressing@w3.org are also gratefully acknowledged.

B. Change log Log (Non-Normative)

B.1 Changes Since First Working Draft

Date Editor Description
2005-01-23 @ 21:13 mgudgin Incorporated resolution of issue i014; edits to Section 2.3
2005-01-23 @ 20:52 mgudgin Incorporated resolution of issue i006; made wsa:To optional
2005-01-23 @ 19:32 mgudgin Incorporated resolution of Issue i001 by removing Reference Properties
2005-01-17 @ 02:13 mgudgin Incorporated Paco's proposal for resolving Issue 038
2005-01-16 @ 22:40 mgudgin s/PortType/InterfaceName in certain examples
2004-12-17 @ 16:08 mhadley Improved readability of introduction
2004-12-16 @ 18:20 mhadley Added resolution to issue 19 - WSDL version neutrality
2004-12-16 @ 16:50 mhadley Added issue 33 resolution
2004-12-14 @ 20:10 mhadley Switched back to edcopy formatting
2004-12-14 @ 20:02 mhadley Enhanced auto-changelog generation to allow specification of data ranges for logs. Split change log to show changes between early draft and first working draft and changes since first working draft.
2004-12-14 @ 18:13 mhadley Added resolutions for issues 12 (EPR lifecycle), 37 (relationship from QName to URI) and 39 (spec name versioning)

B.2 Changes Since Submission

Date Editor Description
2004-11-23 @ 21:38 mhadley Updated titles of examples. Fixed table formatting and references. Replaced uuid URIs with http URIs in examples. Added document status.
2004-11-22 @ 15:40 mhadley Removed reference to WS-Policy
2004-11-15 @ 19:43 mhadley Fixed some inter and intra spec references.
2004-11-12 @ 21:19 mgudgin Removed TBD sections
2004-11-11 @ 18:31 mgudgin Added some TBD sections
2004-11-07 @ 02:03 mhadley Second more detailed run through to separate core, SOAP and WSDL document contents. Removed dependency on WS-Policy. Removed references to WS-Trust and WS-SecurityPolicy
2004-11-02 @ 22:25 mhadley Removed static change log and added dynamically generated change log from cvs.
2004-10-28 @ 17:05 mhadley Initial cut of separating specification into core, soap and wsdl