- From: Paul Grosso <pgrosso@arbortext.com>
- Date: Wed, 25 Jun 2003 14:09:19 -0500
- To: uri@w3.org
Apologies for entering late, but I've just realized that the latest 2396bis is planning to change the meaning that 2396 gives to URI references that consist only of a fragment identifier. I'm surprised to hear this is being considered, and I think it is a mistake. As I'm sure most of you 2396-experts know, from 2396: 4.2. Same-document References A URI reference that does not contain a URI is a reference to the current document. . . . 5.2. Resolving Relative References to Absolute Form . . . 2) If the path component is empty and the scheme, authority, and query components are undefined, then it is a reference to the current document and we are done. . . . C.1. Normal Examples #s = (current document)#s However, in draft-fielding-uri-rfc2396bis-03, the text in 4.4 Same-document Reference has been changed in this regard. The pseudo-code in 5.2 Obtaining the Referenced URI includes: if (R.path == "") then T.path = Base.path; And in 5.4.1 Normal Examples, there is: "#s" = "http://a/b/c/d;p?q#s" The fact that several browsers have done this wrong for a long time has been very annoying, but is not a good reason to remove this needed feature. Some browsers and other tools do follow 2396 properly in this regard. In fact, this specific issue was discussed in the development of the XML Base Recommendation [1]. When we made normative reference to RFC 2396 in XML Base, we did this with the clear understanding that we were defining XML Base so that a URI reference consisting solely of a fragment identifier would NOT be affected by XML Base. So changing 2396bis in this respect would mean that 2396bis would then be out of sync with XML Base. Use case -------- I download one part of a multipart W3C spec to my laptop so that I can work on a new version of it. This document has made intelligent use of relative URIs to make references to the other parts (and graphics) that make up this spec. I don't want to download the whole set of other parts and graphics while I work on this part, so I set xml:base appropriately on the document element so that all the relative URIs to the other parts and graphics work. Of course, there are lots of relative URIs that are only fragment identifiers within this document. This includes links from citation elements in the text down to the corresponding bibliography entry, links from tokens in various grammar productions over to another production within the same document, links from defined terms to it definition within this document, etc. I like the fact that, when I click on a link that resolves to another part, I am taken to that other part which is why I want to use xml:base. But I sure don't want to click on a link that's supposed to take me from a defined term to its definition in the previous paragraph and find myself going to another (older version of the) document. And if I'm offline and trying to work on this document, I'm going to be even more inconvenienced when I click on what I believe to be an intra-document link if it turns out instead to refer to another resource that I cannot currently access. If URI references of the form #foo are no longer going to be same document references, then I see no way to have the citation, term/definition, or other intra-document links work in the presence of xml:base. Basically, this change would make use of XML Base (if we changed XML Base to refer to the new version of 2396) difficult to the point of becoming almost useless in documents that made much use of intra-document links. paul [1] http://www.w3.org/TR/xmlbase/
Received on Wednesday, 25 June 2003 15:13:44 UTC