[Bug 2462] [XQuery] Escaping URILiterals


------- Additional Comments From mike@saxonica.com  2006-01-04 10:39 -------
Here's a concrete proposal to resolve the problem: replace the sentence (in 2.4.5)

The value of a URILiteral is whitespace-normalized according to the rules for
the xs:anyURI type in [XML Schema]; however, no escaping normalization is applied.


As in a string literal, any PredefinedEntityRef (for example, &), CharRef
(for example, •) or EscapeQuot or EscapeApos (for example, "") is
replaced by its appropriate expansion. Certain characters, notably the
ampersand, can only be represented using a PredefinedEntityRef or CharRef. 

The URILiteral is subjected to whitespace normalization as defined for the
xs:anyURI type in [XML Schema]: this means that leading and trailing whitespace
is removed, and any other sequence of whitespace characters is replaced by a
single space (#x20) character. Whitespace normalization is done after the
expansion of CharRefs, so writing a newline (say) as 
 does not prevent its
being normalized to a space character.

The URILiteral is not automatically subjected to percent-encoding or decoding as
defined in [RFC3986]. Any process that attempts to resolve the URI against a
base URI, or to dereference the URI, may however apply percent-encoding or
decoding as defined in the relevant RFCs.

Michael Kay

Received on Wednesday, 4 January 2006 10:39:10 UTC