- From: Graham Klyne <GK@ninebynine.org>
- Date: Wed, 08 Sep 2004 12:41:19 +0100
- To: "Roy T. Fielding" <fielding@gbiv.com>, uri@w3.org
I think this patch is an improvement. I'd like to be able to see/review the resulting document. #g -- At 17:54 27/08/04 -0700, Roy T. Fielding wrote: >A request has been made to remove all usage of the term relative-URI >from the specification, now listed as issue 046-lc-edit-relative-URI. > >The following patch will make that change to draft-06.xml. In spite of >its length, the change remains IMHO editorial in nature. If you do >not think it is allowable in the author's 48 hours of modifications >prior to RFC publication, or if you disagree with the patch, or if >you feel that this level of churn isn't worth it just to satisfy >confusion, then please tell us now by replying to this message. > >Cheers, > >Roy T. Fielding <http://roy.gbiv.com/> >Chief Scientist, Day Software <http://www.day.com/> > >Index: rfc2396bis.xml >=================================================================== >RCS file: /home/cvs/ietf-uri/rev-2002/rfc2396bis.xml,v >retrieving revision 1.121 >diff -u -r1.121 rfc2396bis.xml >--- rfc2396bis.xml 17 Jul 2004 22:26:41 -0000 1.121 >+++ rfc2396bis.xml 28 Aug 2004 00:42:16 -0000 >@@ -470,8 +470,8 @@ > <iref item="relative" primary="true"/> > <t> > It is often the case that a group or "tree" of documents has been >-constructed to serve a common purpose, wherein the vast majority of URIs >-in these documents point to resources within the tree rather than >+constructed to serve a common purpose, wherein the vast majority of URI >+references in these documents point to resources within the tree rather than > outside of it. Similarly, documents located at a particular site are > much more likely to refer to other resources at that site than to > resources at remote sites. >@@ -484,7 +484,7 @@ > changing any of the relative references. > </t> > <t> >-A relative URI reference (<xref target="relative-uri"/>) refers to a >+A relative reference (<xref target="relative-ref"/>) refers to a > resource by describing the difference within a hierarchical name space > between the reference context and the target URI. The reference resolution > algorithm, presented in <xref target="reference-resolution"/>, defines >@@ -1158,8 +1158,8 @@ > either be empty or begin with a slash ("/") character. > If a URI does not contain an authority component, then > the path cannot begin with two slash characters ("//"). >-In addition, a URI reference (<xref target="uri-reference"/>) may begin >-with a relative path, in which case the first path segment cannot >+In addition, a URI reference (<xref target="uri-reference"/>) may be >+a relative-path reference, in which case the first path segment cannot > contain a colon (":") character. The ABNF requires five separate rules > to disambiguate these cases, only one of which will match the path > substring within a given URI reference. We use the generic term >@@ -1208,8 +1208,8 @@ > <t> > The path segments "." and "..", also known as dot-segments, are defined for > relative reference within the path name hierarchy. >-They are intended for use at the beginning of a relative path reference >-(<xref target="relative-uri"/>) for indicating >+They are intended for use at the beginning of a relative-path reference >+(<xref target="relative-ref"/>) for indicating > relative position within the hierarchical tree of names. This is similar > to their role within some operating systems' file directory structure to > indicate the current directory and parent directory, respectively. >@@ -1356,13 +1356,13 @@ > resource identifier. > <iref item="URI grammar" subitem="URI-reference" primary="true"/> > <iref item="URI grammar" subitem="URI" primary="false"/> >-<iref item="URI grammar" subitem="relative-URI" primary="false"/> >+<iref item="URI grammar" subitem="relative-ref" primary="false"/> > </preamble><artwork type="abnf"> >- URI-reference = URI / relative-URI >+ URI-reference = URI / relative-ref > </artwork><postamble> >-A URI-reference may be relative: >-if the reference's prefix matches the syntax of a scheme followed by >-its colon separator, then the reference is a URI rather than a relative-URI. >+A URI-reference is either a URI or a relative reference. >+If the URI-reference's prefix does not match the syntax of a scheme followed >+by its colon separator, then the URI-reference is a relative reference. > </postamble></figure> > <t> > A URI-reference is typically parsed first into the five URI components, >@@ -1377,20 +1377,20 @@ > </t> > </section> > >-<section title="Relative URI" anchor="relative-uri"> >-<iref item="relative-URI" primary="true"/> >+<section title="Relative Reference" anchor="relative-ref"> >+<iref item="relative-ref" primary="true"/> > <iref item="network-path" primary="true"/> > <iref item="absolute-path" primary="true"/> > <iref item="relative-path" primary="true"/> > <figure><preamble> >-A relative URI reference takes advantage of the hierarchical syntax >-(<xref target="hierarchical"/>) in order to express a reference that is >+A relative reference takes advantage of the hierarchical syntax >+(<xref target="hierarchical"/>) in order to express a URI reference > relative to the name space of another hierarchical URI. >-<iref item="URI grammar" subitem="relative-URI" primary="true"/> >+<iref item="URI grammar" subitem="relative-ref" primary="true"/> > <iref item="URI grammar" subitem="query" primary="false"/> > <iref item="URI grammar" subitem="fragment" primary="false"/> > </preamble><artwork type="abnf"> >- relative-URI = relative-part [ "?" query ] [ "#" fragment ] >+ relative-ref = relative-part [ "?" query ] [ "#" fragment ] > > relative-part = "//" authority path-abempty > / path-absolute >@@ -1493,7 +1493,7 @@ > <xref target="RFC1535"/>. > </t> > <t> >-Since a URI suffix has the same syntax as a relative path reference, a >+Since a URI suffix has the same syntax as a relative-path reference, a > suffix reference cannot be used in contexts where a relative reference > is expected. As a result, suffix references are limited to those places > where > there is no defined base URI, such as dialog boxes and off-line > advertisements. >@@ -1508,7 +1508,7 @@ > <t> > This section defines the process of resolving a URI reference within > a context that allows relative references, such that the result is a >-string matching the "URI" syntax rule of <xref target="components"/>. >+string matching the <URI> syntax rule of <xref target="components"/>. > </t> > > <section title="Establishing a Base URI" anchor="base-uri"> >@@ -1860,7 +1860,7 @@ > http://a/b/c/d;p?q > </artwork></figure> > <t> >-a relative URI reference is transformed to its target URI as follows. >+a relative reference is transformed to its target URI as follows. > </t> > > <section title="Normal Examples" anchor="relative-normal"> >@@ -1899,7 +1899,8 @@ > </t> > <t> > Parsers must be careful in handling cases where there are more >-relative path ".." segments than there are hierarchical levels in the >+".." segments in a relative-path reference than there are hierarchical >+levels in the > base URI's path. Note that the ".." syntax cannot be used to change > the authority component of a URI. > </t> >@@ -1921,7 +1922,7 @@ > "..g" = "http://a/b/c/..g" > </artwork></figure> > <t> >-Less likely are cases where the relative URI reference uses unnecessary or >+Less likely are cases where the relative reference uses unnecessary or > nonsensical forms of the "." and ".." complete path segments. > </t> > <figure><artwork> >@@ -1934,7 +1935,7 @@ > </artwork></figure> > <t> > Some applications fail to separate the reference's query and/or >-fragment components from a relative path before merging it with >+fragment components from the path component before merging it with > the base path and removing dot-segments. This error is rarely noticed, > since typical usage of a fragment never includes the hierarchy ("/") > character, and the query component is not normally used within >@@ -1947,7 +1948,7 @@ > "g#s/../x" = "http://a/b/c/g#s/../x" > </artwork></figure> > <t> >-Some parsers allow the scheme name to be present in a relative URI >reference if >+Some parsers allow the scheme name to be present in a relative reference if > it is the same as the base URI scheme. This is considered to be a > loophole in prior specifications of partial URI <xref target="RFC1630"/>. > Its use should be avoided, but is allowed for backward compatibility. >@@ -2007,7 +2008,7 @@ > </t> > <t> > In testing for equivalence, applications should not directly compare >-relative URI references; the references should be converted to their >+relative references; the references should be converted to their > target URI forms before comparison. When URIs are being compared > for the purpose of selecting (or avoiding) a network action, such as > retrieval of a representation, the fragment components (if any) should >@@ -2194,7 +2195,7 @@ > <t>Always provide the host, if any, in lowercase characters.</t> > <t>Only perform percent-encoding where it is essential.</t> > <t>Always use uppercase A-through-F characters when percent-encoding.</t> >- <t>Prevent dot-segments appearing in non-relative URI paths.</t> >+ <t>Prevent dot-segments from appearing in paths.</t> > <t>For schemes that define a default authority, use an empty authority > if the default is desired.</t> > <t>For schemes that define an empty path to be equivalent to a path >@@ -3084,11 +3085,11 @@ > / path-rootless > / path-empty > >- URI-reference = URI / relative-URI >+ URI-reference = URI / relative-ref > > absolute-URI = scheme ":" hier-part [ "?" query ] > >- relative-URI = relative-part [ "?" query ] [ "#" fragment ] >+ relative-ref = relative-part [ "?" query ] [ "#" fragment ] > > relative-part = "//" authority path-abempty > / path-absolute >@@ -3315,7 +3316,7 @@ > and discussion within the W3C Technical Architecture Group. > </t> > <t> >-An ABNF rule for URI has been introduced to correspond to the >+An ABNF rule for URI has been introduced to correspond to one > common usage of the term: an absolute URI with optional fragment. > </t> > </section> >@@ -3349,19 +3350,21 @@ > abs_path, rel_path, path_segments, rel_segment, and mark rules. > All references to "opaque" URIs have been replaced with a better > description of how the path component may be opaque to hierarchy. >+The relativeURI rule has been replaced with relative-ref to avoid >+unnecessary confusion over whether or not they are a subset of URI. > The ambiguity regarding the parsing of URI-reference as a URI or a >-relative-URI with a colon in the first segment has been eliminated >+relative-ref with a colon in the first segment has been eliminated > through the use of five separate path matching rules. > </t> > <t> > The fragment identifier has been moved back into the section on >-generic syntax components and within the URI and relative-URI >+generic syntax components and within the URI and relative-ref > rules, though it remains excluded from absolute-URI. > The number sign ("#") character has been moved back to the reserved set > as a result of reintegrating the fragment syntax. > </t> > <t> >-The ABNF has been corrected to allow a relative path to be empty. >+The ABNF has been corrected to allow the path component to be empty. > This also allows an absolute-URI to consist of nothing after the "scheme:", > as is present in practice with the "dav:" namespace <xref target="RFC2518"/> > and the "about:" scheme used internally by many WWW browser implementations. ------------ Graham Klyne For email: http://www.ninebynine.org/#Contact
Received on Wednesday, 8 September 2004 15:40:55 UTC