- From: Joe Gregorio <joe@bitworking.org>
- Date: Thu, 9 Nov 2006 17:07:03 -0500
- To: uri@w3.org
I've just reviewed all the feedback on the -00 draft
and believe that there is rough agreement on the following points:
1. template variables should not span segments
2. mandate a utf-8 encoding
3. The spec is self contradictory:
http://lists.w3.org/Archives/Public/uri/2006Oct/0011.html
So that leads to escaping the values substituted for variables.
I read over the ABNF in RFC 3986 and I think the following
algorithm will produce the 'right' results, and by 'right' I mean
the it will produce a valid URI and at the same time the results
won't be suprising:
1. Start with a 'string' for each variable value, and by 'string'
I mean a series of unicode characters.
2. encode that string as 'utf-8'
3. %-encode each octet not in:
"!" / "$" / "'" / "(" / ")" / "*" / "+" / "," / ";" / ALPHA /
DIGIT / "-" / "." / "_" / "~"
[That's (unreserved/pct-encoded/sub-delims) with '&' and '=' removed.]
This will force the %encoding of "/", ":", "&", "=" and "@" among others.
So
a = "name=fred"
http://example.org/{a}
expands to:
http://example.org/name%3Dfred
and
name = joe.gregorio
mailto:{name}@gmail.com
expands to:
joe.gregorio@gmail.com
and
id=this:that
urn:{id}
expands to:
urn:this%3Athat
Thoughts?
Thanks,
-joe
On 10/5/06, Julian Reschke <julian.reschke@gmx.de> wrote:
>
> Hi Joe/Mark/Marc/David,
>
> I think this goes into the right direction. Congratulations.
>
> The main issue I see is that the spec doesn't seem to have a position on
> what to do with values that contain non-URI friendly character
> sequences. For instance, in
> <http://bitworking.org/projects/URI-Templates/draft-gregorio-uritemplate-00.html#rfc.section.4.2.p.2>
> you say:
>
> "If the value of a template variable would conflict with a reserved
> character's purpose as a delimiter, then the conflicting data must be
> percent-encoded before substitution."
>
> However, in
> <http://bitworking.org/projects/URI-Templates/draft-gregorio-uritemplate-00.html#rfc.section.4.3>
> we see:
>
> +++++++++++
> The following are examples of URI Template expansions that are not legal.
>
> Name Value
> ------------------------------------------------------------
> a fred barney
> b %
>
> The following URI Templates are expanded with the given values and do
> not produce legal URIs.
>
> http://example.org/{a}
> http://example.org/fred barney
>
> http://example.org/{b}/
> http://example.org/%/
> +++++++++++
>
> ..although I would have assumed that "http://example.org/{b}/" should
> have been expanded to "http://example.org/%25/" according to Section 4.2...
>
>
>
> My other feedback is mainly editorial/formal...:
>
> Content:
>
> - Section 4.3: in the examples: "scheme" != "schema"
>
>
> Editorial:
>
> - Superfl. whitespace in "machine- readable" and "well- known"
>
> - Spell out "interoperability" instead of "interop"
>
> - Outdated references RFC2234 (-> RFC4234) and RFC2717 (-> RFC4395)
>
> - In first sentence of Section 4, the internal ref seems to lack a ",
> see ..."
>
> - when citing RFC3986, it would be nice when the concrete section number
> was given (several places)
>
> - Section 4.3: maybe make that use an xml2rfc texttable element
>
>
> Formal:
>
> - I think the xml2rfc docName shouldn't contain the extension "txt"
>
> - I've never seen "individual" as an org name in an IETF document;
> leaving it out instead seems to be the agreed-upon way to do it...
>
>
>
> Best regards, Julian
>
>
--
Joe Gregorio http://bitworking.org
Received on Thursday, 9 November 2006 22:07:22 UTC