- From: Marc Hadley <Marc.Hadley@Sun.COM>
- Date: Fri, 04 Feb 2005 11:29:22 -0500
- To: public-ws-addressing@w3.org
On Jan 26, 2005, at 10:52 AM, Marc Hadley wrote:
>
> I took an action at the last F2F to raise an issue about absolute vs
> relative URIs in message addressing properties. The following message
> addressing properties are URIs: [destination], [action], [message id],
> [relationship/relatesto], [relationship/type]. In addition the message
> addressing properties [source endpoint], [reply endpoint] and [fault
> endpoint] each contain [address] properties that are also URIs.
>
> SOAP 1.2 describes a set of conventions for use of URIs in SOAP
> messages[1] and recommends (in the RFC 2119 sense) that
> "application-defined data carried within a SOAP envelope use the same
> mechanisms and guidelines". I think this applies to addressing
> headers.
>
> WS-Addressing should define which properties MUST be serialized in
> SOAP messages as absolute URIs and which may be relative and subject
> to the convention defined by SOAP.
>
I took an action to make a concrete proposal for this issue. My
suggested resolution hinges on whether its possible to establish a
useful base URI for the properties in the SOAP message or not. Recall
that all of these URIs are serialized in SOAP messages as part of SOAP
header blocks:
<env:SOAP>
<env:Header>
<wsa:To>[destination]</wsa:To>
<wsa:Action>[action]</wsa:Action>
<wsa:MessageID>[message id]</wsa:MessageID>
<wsa:RelatesTo RelationshipType="[relationship/type]">
[relationship/relates to]
</wsa:RelatesTo>
<wsa:ReplyTo>
<wsa:Address>[reply endpoint/address]</wsa:Address>
</wsa:ReplyTo>
<wsa:FaultTo>
<wsa:Address>[fault endpoint/address]</wsa:Address>
</wsa:FaultTo>
<wsa:From>
<wsa:Address>[source endpoint/address]</wsa:Address>
</wsa:From>
</env:Header>
<env:Body>
</env:Body>
</env:SOAP>
The properties are grouped below by the possibility that they might
share a common base URI:
(i) [reply endpoint/address], [fault endpoint/address], [source
endpoint/address], [message id] (possibly)
(ii) [destination], [relationship/relates to]
(iii) [relationship/type], [destination] (when anonymous)
The base URI for group (ii) might be established by the protocol
binding. The SOAP 1.2 HTTP binding establishes a base URI that is the
HTTP Request-URI or the value of the HTTP Content-Location header
field[3].
A base URI for groups (i), (ii) or (iii) could be established using
xml:base[4], however the xml:base attribute would need to be in scope
for all of the intended properties and would therefore need to be put
on either the env:Header or env:Envelope (there's little point putting
it on each individual header, one might just as well use an absolute
URI instead). Use of xml:base on the envelope or header would override
any base URI established by the protocol binding so its not possible to
use xml:base for one group of properties and the protocol binding for
another.
Taking the above into account I'd suggest that base URIs are most
useful when serializing the [*/address] and [destination] properties. I
therefore propose that we require (in the SOAP binding document) that
the following properties are serialized as absolute URIs in the
corresponding infoset representation: [action], [message id],
[relationship/relates to] and [relationship/type]. I further propose
that the remaining URIs ([destination], [source endpoint/address],
[reply endpoint/address] and [fault endpoint/address]) may be relative
and if so are subject to the standard SOAP rules for converting to
absolute URIs.
Marc.
>
> [1] http://www.w3.org/TR/2003/REC-soap12-part1-20030624/#useofuris
> [2] http://www.w3.org/2002/ws/addr/wd-issues/#i046
[3] http://www.w3.org/TR/2003/REC-soap12-part2-20030624/#soapinhttp
[4] http://www.w3.org/TR/2001/REC-xmlbase-20010627/
---
Marc Hadley <marc.hadley at sun.com>
Web Technologies and Standards, Sun Microsystems.
Received on Friday, 4 February 2005 16:29:58 UTC