Relative URI vs. #fragment. (was Re: [URN] #fragment as :name)

Sam Sun (ssun@CNRI.Reston.VA.US)
Mon, 2 Mar 1998 11:35:27 -0500

Message-ID: <08c801bd45f9$35dc86a0$29019784@ssun.CNRI.Reston.Va.US>
From: "Sam Sun" <ssun@CNRI.Reston.VA.US>
To: "Al Gilman" <>, <uri@Bunyip.Com>,
Date: Mon, 2 Mar 1998 11:35:27 -0500
Subject: Relative URI vs. #fragment. (was Re: [URN] #fragment as :name)

>This is an observation, not a proposal.
>It appears to me that the established uses of #fragment with HTML
>documents, and the proposed extensions with XML documents (which
>are designed to be compatible with the HTML-driven uses) are all
>cases where what follows the # character is a name reference.
>It is a reference to a name defined in a namespace which is in
>turn defined by the object identified in the preceding name.
>It is a "classic case of namespace descent."  The spelling might
>as easing be scheme:stuff:fragment where stuff comprises the
><site> and <path> parts in conventional URL usage.

>It is the fact that ID and NAME are both attribute designators
>from a common namespace that lets Lynx treat IDs in HTML in a
>manner "homologous to #name" and extend the scope of #name to
>include #[name | id] with no damage whatsoever.

I think it might be helpful to add that the “#fragment” and relative URI are
two kind of entities within any certain name and are processed differently.
For example, href=”relative-uri” is processed by binding “relative-uri” to
its base-uri, and sending the complete URI across the wire. But for href=”
foo:aaa#bbb”, according to the current URI draft, the “#bbb” would be cut
off from the URI reference (since it’s not part of URI), and only the
“foo:aaa” get sent over the wire.