W3C home > Mailing lists > Public > uri@w3.org > October 2002

Re: no parameter in first segment of relative URI?

From: Martin Duerst <duerst@w3.org>
Date: Fri, 11 Oct 2002 18:16:04 +0900
Message-Id: <4.2.0.58.J.20021011181427.05276460@localhost>
To: Stefan Eissing <stefan.eissing@greenbytes.de>
Cc: uri@w3.org

At 10:33 02/10/11 +0200, Stefan Eissing wrote:
>Section 3.3 says:
>
>The parameters are not significant to the parsing of relative references.
>
>That would explain the production. However, when a relative uri ref is 
>resolved
>to a uri, you'd get your parameter again. I think the production in the syntax
>should be changed.

This seems to make sense. Thanks a lot.


>While looking at it, I see that segment and rel_segment have different
>sets of allowed characters. Noticeably, ':' is allowed in a (absolute)
>path segment and forbidden in the rel_segment.
>
>Isn't that calling for trouble? I'd imagine that there is plenty of code 
>around
>which converts absolute uris to uri references without looking if the
>starting rel_segment will be free of ':' chars.

Well, yes, but if there is a ':', then the part before it is
interpreted as a scheme, and it's an absolute URI.

Regards,   Martin.


>Should'nt the ':' in path segments be discouraged?
>
>//Stefan
>
>Am Freitag, 11.10.02, um 08:29 Uhr (Europe/Berlin) schrieb Martin Duerst:
>
>>
>>Dear URI experts,
>>
>>Looking through the URI syntax in detail, I became aware
>>of the following 'anomaly': parameters are not allowed
>>in the first segment of a relative URI (if it doesn't start
>>with a slash). The relevant rules are:
>>
>>  relativeURI   = ( net_path | abs_path | rel_path ) [ "?" query ]
>>
>>  net_path      = "//" authority [ abs_path ]
>>  abs_path      = "/"  path_segments
>>  rel_path      = rel_segment [ abs_path ]
>>
>>  rel_segment   = 1*( unreserved | escaped |
>>                      ";" | "@" | "&" | "=" | "+" | "$" | "," )
>>
>>  path_segments = segment *( "/" segment )
>>  segment       = *pchar *( ";" param )
>>  param         = *pchar
>>  pchar         = unreserved | escaped |
>>                  ":" | "@" | "&" | "=" | "+" | "$" | ","
>>
>>So in "abc;def/ghi;jkl", 'jkl' is a parameter, but 'def' isn't.
>>On the other hand, in "/abc;def/ghi;jkl", both 'def' and 'jkl'
>>are parameters.
>>
>>Is this an error in the syntax, or can somebody explain this?
>>
>>
>>Regards,     Martin.
>>
>>
>>
>
>
>
Received on Friday, 11 October 2002 08:25:40 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:25:04 UTC