- From: Paul Grosso <pgrosso@arbortext.com>
- Date: Thu, 03 Aug 2000 09:24:31 -0500
- To: Lee Jonas <lee.jonas@cakehouse.co.uk>, "'www-xml-linking-comments@w3.org'" <www-xml-linking-comments@w3.org>
I'm not sure I'm understanding all your points, but I'll try to embed some comments below. At 11:47 2000 08 03 +0100, Lee Jonas wrote: >There seems to be no special rules for resolving fragments in Section 4 of >the XML Base WD. What do you mean by "resolving fragments?" "Fragments" is not really a well-defined term (except by the "XML Fragment Interchange" specification [1] whose terminology no one really follows), and regardless of its meaning, I cannot see how one "resolves" them. My best guess is that you're talking about resolving (in the sense of converting a relative URI reference into an absolute one) relative URI references containing (or consisting of?) fragment identifiers (in the RFC 2396 [2] sense). >Consider the following example from thisdoc.xml: > ><myFragment ID="local_fragment"/> > ><myElt xml:base="http://mydomain.com/thatdoc.xml"> > <myInnerElt href="#xpointer(id('remote_fragment'))"/> > <myInnerElt href="#xpointer(id('local_fragment'))"/> ></myElt> What you show above isn't a well-formed document. I will assume you are showing only an excerpt of thisdoc.xml. >http://mydomain.com/thatdoc.xml is a valid URI and hence a valid base, Agreed. Note that the base URI is "http://mydomain.com/" since, per RFC 2396, the part following the last "/" is removed when computing the base URI. (A base URI is a "directory", to use file system terminology, not a "file aka document" itself.) >but is it dumb to want to use a resource as a base for fragments? I don't think it's necessarily dumb to use URI as a base, but a base URI should be like a "directory" not like a "file". I don't know what it means to be a "base for fragments". I would point out, however, that in your example above, both your example href attribute values consist *solely* of a fragment identifier. Therefore, per section 5.2. "Resolving Relative References to Absolute Form" point 2 of RFC 2396, to wit: 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. these relative URI references refer to the current document regardless of the current base URI, so the use of xml:base in your example above does not affect the resolution of these relative URI references. If you wanted to give a fragment identifier that resolved into a reference using the base URI, you could put "./" in front of your fragment identifier. >If so, no problem, I can rewite as: > ><myFragment ID="local_fragment"/> > ><myElt xml:base="http://mydomain.com/"> > <myInnerElt href="thatdoc.xml#xpointer(id('remote_fragment'))"/> > <myInnerElt href="#xpointer(id('local_fragment'))"/> ></myElt> Note that the base URI set by the xml:base in this example is the same as that set in your previous example. In this example, the first href does get resolved into: http://mydomain.com/thatdoc.xml#xpointer(id('remote_fragment')) The second one still gets resolved as a reference into the current document regardless of the base URI. >If not, assume thatdoc.xml contains elements with IDs of 'remote_fragment' >and 'local_fragment'. According to the current 'relative URI' rules, both >remote_fragment and local_fragment will be resolved by XPointer to point to >fragments in thatdoc.xml. This is not true--see my explanation above. >How would I indicate I want to refer to >thisdoc.xml#local_fragment instead of thatdoc.xml#local_fragment? Within thisdoc.xml, "#local_fragment" refers to thisdoc.xml#local_fragment regardless of the base URI. Also within thisdoc.xml, and assuming a base URI of "http://mydomain.com/", "thatdoc.xml#local_fragment" would refer to thatdoc.xml#local_fragment. >Note that specifying href="thisdoc.xml#xpointer(id('local_fragment'))" would >be unacceptable: it may cause an application / browser to reload >thisdoc.xml. Within thisdoc.xml and assuming a base URI of "http://mydomain.com/", "thisdoc.xml#local_fragment" would resolve to the exact same thing as "#local_fragment"; there is nothing at all wrong with this. If that causes the application/browser to do something unacceptable, that is a bug in the application/browser. >If resources can be specified as base URIs then should XBase section 4 be >revised to cater for this? I don't see how or why. XML Base merely provides a mechanism in XML for how to embed the specification of a base URI in an XML resource per RFC 2396 section 5.1.1. "Base URI within Document Content". How to use a base URI--whatever it is (except for how the base URI may affect a relative xml:base specification)--is out of scope for XML Base, as it is defined by RFC 2396. paul [1] http://www.w3.org/TR/WD-xml-fragment [2] ftp://ftp.ietf.org/rfc/rfc2396.txt
Received on Thursday, 3 August 2000 10:25:28 UTC