Re: #foo URI references

Sorry for this retread of an old topic, but I want to be sure that I
answered your question (and I can't remember if I did).

On Tuesday, July 15, 2003, at 02:11  PM, Paul Grosso wrote:
> At 12:25 2003 07 11 +0200, Roy T. Fielding wrote:
>> Paul had asked:
>>> Are you saying that it never makes sense for an author to use
>>> xml:base or HTML's BASE element?
>>
>> No, it does not change their use.
>
> I believe one really needs to be able to author something in a resource
> that is certain to refer to that same resource.  If you look at most 
> W3C
> specification's--certainly most of those with which I am familiar in 
> the
> XML Activity--I think you'll find most links are intra-document links.

To be perfectly clear, the algorithm as stated in draft 03 does not 
alter
such use whatsoever.  The result is still the current document, 
regardless
of which base is used in the algorithm.  I will try to make that clearer
in the next revision.

> I continue to believe this serious backward incompatible change to 
> semantics
> defined by 2396 and assumed by various other specs including XML Base 
> is
> quite problematic.

I can only conclude that you missed the section.

    4.4  Same-document Reference

    When a URI reference occurring within a document or message
    refers to a URI that is, aside from its fragment component (if any),
    identical to the base URI (section 5.1), that reference is called
    a "same-document" reference. The most frequent examples of
    same-document references are relative references that are empty
    or include only the number-sign ("#") separator followed by a
    fragment identifier.

    When a same-document reference is dereferenced for the purpose
    of a retrieval action, the target of that reference is defined
    to be within that current document or message; the dereference
    should not result in a new retrieval.

In other words, it doesn't matter what the base URI might be at
that point -- the only relevant question is whether the resulting
reference (after parsing) differs from the current base URI by
only the fragment.

There is no change in reference semantics between this and 2396.
The only thing that changes is the point at which the processor
determines whether the link is internal or external.  The reason
for this change is because it corresponds to the separation of
concerns within most URI-parsing technology, such as browsers,
which explains why they didn't implement the prior behavior.

The only case that could cause this change to result in an error
is if the base URI were changed to point to a resource other than
the one corresponding to this document AND that other resource
happens to be referenced within this document.  That case is not
considered relevant because it is a bad idea and wouldn't work
with existing browsers and caches regardless.  For the tricks you
described earlier with xml-base, it is trivial to invent a base URI
that isn't referenced within the document and therefore not subject
to this discrepancy in behavior.

....Roy

Received on Friday, 19 September 2003 19:54:15 UTC