Re: FW: Proposed positive text for XML Base

Doug,

If you simply picked up the angle-brackets and handed them
to the application, that would indeed be the case barring
some normalization of the various referencve URIs.

However, an XML Processor would return an Element or a NodeSet
that retained xml:base and the application processing these
references would get the correct context.

Cheers,

Chris

Doug Davis wrote:

> Looking at example 3:
>   <s:envelope>
>     <s:body xml:base="http://www.example.com">
>       <xhtml:html>
>         <xhtml:base href="/dir/"/>
>         <xhtml:body>
>           <xhtml:a href="test.xml"/>
>           The href is http://www.example.org/dir/test.xml.
>         </xhtml:body>
>       </xhtml:html>
>     </s:body>
>   </s:envelope>
> I'm trying to figure out what this mean internally for a SOAP
> processor.  I would imagine that in the non-rpc case most SOAP
> processors will just grab the body and pass it along to the
> service.  So, if we take the above XML starting at <xhtml:html>
> we'd send just:
>       <xhtml:html>
>         <xhtml:base href="/dir/"/>
>         <xhtml:body>
>           <xhtml:a href="test.xml"/>
>           The href is http://www.example.org/dir/test.xml.
>         </xhtml:body>
>       </xhtml:html>
> to the service.  How does the service resolve these URLs?
> Are we going to require them to add an "xml:base" attribute
> to the <xhtml:html> element?  That would seem to be invalid,
> the SOAP processor shouldn't mess with the data.  Or do we
> just leave this up to each implementation as a problem for
> them to solve?
> 
> I suppose we could look at this as an error case - since
> on the client/sender side the original doc (which started
> with the <xhtml:html> element) was missing the xml:base
> element to start with so the original doc was wrong and
> we just happen to get lucky enough that in some intermediate
> form (ie. the entire SOAP envelope) it just happened to look
> valid.  Is this how you guys thought of it?
> 
> -Dug
> 
> 
> "Jonathan Marsh" <jmarsh@microsoft.com>@w3.org on 10/17/2001 07:22:04 PM
> 
> Sent by:  xml-dist-app-request@w3.org
> 
> 
> To:   <xml-dist-app@w3.org>
> cc:   "Henrik Frystyk Nielsen" <henrikn@microsoft.com>, "Paul Cotton"
>       <pcotton@microsoft.com>
> Subject:  FW: Proposed positive text for XML Base
> 
> 
> 
> Henrik and Paul consulted with me on this issue, in my role as editor of
> the XML Base Recommendation, resulting in an updated proposal based on
> David Orchard's text.  Although I am a member of the XML Core WG, and
> believe the text below is consistent with the feedback the Core WG provided
> on this issue, I do not supply this text under the aegis of the Core WG.  I
> hope that this proposal is helpful to the XP WG in considering this issue.
> 
> 
> BASE URI's and Relative URI Resolution
> --------------------------------------
> This version of the SOAP specification supports the W3C XML Base
> Recommendation. An xml:base attribute information item MAY appear on any of
> the element information items defined in this specification.  This
> specification does not make use of URI References, only absolute URIs, so
> xml:base attributes will not affect the behavior of the SOAP envelope
> itself.  Relative URI values (such as for the SOAP-ENV:EncodingStyle
> attribute) are not recognized as matching the absolute URI values mandated
> by this specification.
> 
> The XML Base specification provides a standard base URI for the contents of
> the SOAP-ENV:Body or other header entries.  Specifications for particular
> applications of SOAP, as well as specifications for transport bindings,
> header entries and/or body entries MAY define the base URI of the SOAP
> message interpretation of relative URI's within such body or entries
> additionally.  When such mechanisms depend upon the base URI of a higher
> context, such as the document, they SHOULD be given the base URI of the
> nearest ancestor SOAP envelope element instead.  In the absence of such
> additional specifications, the resolution of relative URI's appearing
> within the contents of a body or other header entry is defined by XML Base.
> It is not recommended that new specifications invent new mechanisms for
> adjusting the base URI, since these mechanisms will be in conflict with the
> [base URI] infoset property, which only recognizes XML Base.
> 
> Namespace declarations for the namespaces used in this specification (such
> as http://www.w3.org/2001/06/soap-envelope) MUST be provided as absolute
> URI's. Element or attribute names qualified with relative URI namespaces
> are not recognized as matching the absolute names mandated by this
> specification."
> 
> 
> Rationale:
> ----------
> The simplest reading of SOAP 1.2 does not allow relative URIs (specifically
> URI References) in any of its attributes.  Making such a change requires
> positive motivation.  Use cases demonstrating the value of relative URIs in
> each circumstance should be found before considering a change.  XML Base is
> a tool for interpreting URI References, and its availability does not mean
> that all URIs benefit from becoming URI References.
> 
> Here is how the proposal above supports the various flavors of base URI
> calculation:
> 
> 1) Some payloads will support XML Base.  For example, the payload1 grammar
> allows xml:base attributes and recognizes XML Base:
> 
> <s:envelope>
>   <s:body xml:base="http://www.example.com">
>     <payload1 ref="test.xml" xml:base="/dir/">
>       This grammar honors XML Base.
>       The ref is http://www.example.com/dir/test.xml.
>     </payload1>
>   </s:body>
> </s:envelope>
> 
> The proposal is optimized for this case.  The [base URI] property of the
> infoset reliably allows relative references to be resolved.
> 
> 2) Payloads that don't allow xml:base attributes, and assume the document
> URI is the base, have a clean interaction with the envelope.  Relative URIs
> must be interpreted relative to the base URI of the SOAP envelope element.
> For example, the payload2 grammar does not recognize XML Base or allow
> xml:base attributes:
> 
> <s:envelope>
>   <s:body xml:base="http://www.example.com">
>     <payload2 ref="test.xml">
>       This grammar does not honor XML Base, or allow xml:base attributes.
>       The ref is http://www.example.com/test.xml, not <message
> base>/test.xml.
>     </payload1>
>   </s:body>
> </s:envelope>
> 
> 3) Payloads that provide a different mechanism for determining XML Base,
> also have a clean interface with the envelope:
> 
> <s:envelope>
>   <s:body xml:base="http://www.example.com">
>     <xhtml:html>
>       <xhtml:base href="/dir/"/>
>       <xhtml:body>
>         <xhtml:a href="test.xml"/>
>         The href is http://www.example.org/dir/test.xml.
>       </xhtml:body>
>     </xhtml:html>
>   </s:body>
> </s:envelope>
> 
> Note that relative URIs for the base are not actually allowed in XHTML.
> Note that the [base URI] property of the <xhtml:a> element is
> http://www.example.com, although an XHTML application would instead treat
> it as http://www.example.com/dir/.  New specifications should avoid
> specifying such mechanisms, because processing the relative URI using a
> generic processor rather than an application-specific processor will
> provide different results.
> 
> 
> -----Original Message-----
> From: David Orchard [mailto:david.orchard@bea.com]
> Sent: Friday, October 05, 2001 17:17
> To: xml-dist-app@w3.org
> Subject: Proposed positive text for XML Base
> I took Noah's excellent wording[1] and semantically NOTed it.  My attempt
> follows.  Please note that this wording defines that relative URI's ARE
> interpreted according to xml:base, therefore implementations must support
> xml:base.  It seems to me that an application that doesn't support xml:base
> but supports relative URIs is an undefined state.
> 
> BASE URI's and Relative URI Resolution
> --------------------------------------
> "This version of the SOAP specification supports the W3C XML Base
> Recommendation. The xml:base attribute MAY appear on the SOAP-ENV:Envelope,
> SOAP-ENV:Body, SOAP-ENV:Header, or SOAP-ENV:Fault elements.
> 
> The XML Base specification provides a standard Base URI for the contents of
> the SOAP-ENV:Body or other header entries.  Specifications for particular
> applications of SOAP, as well as specifications for transport bindings,
> header entries and/or body entries MAY define the interpretation of
> relative URI's within such body or entries additionally. In the absence of
> such additional specifications, the resolution of relative URI's appearing
> within the contents of a body or other header entry is defined by XML Base.
> 
> Relative URI's MAY be used as values for attributes or elements (such as
> SOAP-ENV:Actor, SOAP-ENV:EncodingStyle) defined by this specification; if
> such values are used, their resolution to absolute URI's is defined
> according to the XML Base Recommendation.
> 
> Namespace declarations for the namespaces used in this specification (such
> as http://www.w3.org/2001/06/soap-envelope) MUST be provided as absolute
> URI's. Element or attribute names qualified with relative URI namespaces
> are not recognized as matching the absolute names mandated by this
> specification."
> 
> Cheers,
> Dave Orchard
> 
> [1] http://lists.w3.org/Archives/Public/xml-dist-app/2001Aug/0268.html
> 
> 
> 
> 

Received on Thursday, 18 October 2001 08:20:50 UTC