CR117 Option 1

Remove the text in 6.7.1.1 that reads:

 

No percent-encoding mechanism, as defined in section 2.1 of RFC 3986, is
performed on the replacement value.

 

Add to the bullet list in 6.7.1.1:

 

*         A template whose element name is preceded by the character "~" is
replaced by the corresponding XML element value without additional
%-encoding performed.  Otherwise: 

 

A template preceded in the {http location} by a "?" or "#" character, or an
uncited parameter, is encoded as follows:  Any character in the XML value
falling outside the range ALPHA | DIGIT | "-" | "." | "_" | "~" | "!" | "$"
| "&" | "'" | "(" | ")" | "*" | "+" | "," | ";" | "=" | ":" | "@" MUST be
%-encoded.  

 

A template not preceded in the {http location} by a "?" or "#" character is
encoded as follows:  Any character in the XML value falling outside the
range ALPHA | DIGIT | "-" | "." | "_" | "~" | "!" | "$" | "&" | "'" | "(" |
")" | "*" | "+" | "," | ";" | "=" | ":" | "@" | "?" | "/" MUST be %-encoded.

 

%-encoding MUST be performed using the UTF-8 representation of the character
as prescribed by section 6.4 of [IRIs].

 

Add to the bullet list in 6.7.2.2.1:

*         Parameter values falling outside the range ALPHA | DIGIT | "-" |
"." | "_" | "~" | "!" | "$" | "&" | "'" | "(" | ")" | "*" | "+" | "," | ";"
| "=" | ":" | "@" MUST be %-encoded.  %-encoding MUST be performed using the
UTF-8 representation of the character as prescribed by section 6.4 of
[IRIs].

 

Change the BNF (wherever we decided to stick it) to:

 

httpLocation ::= CharData? (( openBrace | closeBrace | elementName )
CharData?)*

 

CharData ::= [^{}]*

 

openBrace ::= '{{'

 

closeBrace ::= '}}'

 

elementName ::= rawElementName | encodedElementName

 

rawElementName ::= '{~' NCName '}'

 

encodedElementName ::= '{' NCName '}'

 

 

 

Notes on this proposal:

 

1) This will no doubt require editorial license, For instance, see
Philippe's proposal for changed text for 6.7.1.1 at
http://lists.w3.org/Archives/Public/www-ws-desc/2006Sep/0034.

 

2) From rfc3986, within the query part or fragment the following characters
may appear without %-escaping:

 

ALPHA | DIGIT | "-" | "." | "_" | "~" | "!" | "$" | "&" | "'" | "(" | ")" |
"*" | "+" | "," | ";" | "=" | ":" | "@" | "/" | "?"

 

3) From rfc3986, Within a path part the following characters may appear
without %-escaping:

 

ALPHA | DIGIT | "-" | "." | "_" | "~" | "!" | "$" | "&" | "'" | "(" | ")" |
"*" | "+" | "," | ";" | "=" | ":" | "@"

 

4) Over-encoding of parameter values (encoding "/" and "?" even though it's
not necessary) is a possible simplification.

 

5) I don't think it makes sense escaping something other than a path part,
query parameter, or fragment, so I'm not considering specialized escaping in
those places.

 

6) I believe that the encoding, and determination of whether the template
appears in the query parameter/fragment or somewhere else, can be made
independently of resolving the reference against the {address}.  Someone
might want to double check this belief.

 

 

Jonathan Marsh -  <http://www.wso2.com> http://www.wso2.com -
<http://auburnmarshes.spaces.live.com> http://auburnmarshes.spaces.live.com

 

 

Received on Wednesday, 7 February 2007 21:57:36 UTC