Re: [xsl] are all strings in a sequence valid potential QNames

Subject: Re: [xsl] are all strings in a sequence valid potential QNames
From: Andrew Welch <andrew.j.welch@xxxxxxxxx>
Date: Thu, 4 Feb 2010 09:29:37 +0000
On 4 February 2010 09:13, G. Ken Holman <gkholman@xxxxxxxxxxxxxxxxxxxx>
wrote:
> At 2010-02-04 09:04 +0000, Andrew Welch wrote:
>>
>> > Just to check that by "valid potential QName" you mean a string that is
>> > in
>> > the lexical space of xs:QName and will therefore constitute a valid
>> > QName
>> > provided the prefix is in scope?
>> >
>> > ($x castable as xs:QName) will not work because (a) it also tests
>> > whether
>> > the prefix is in scope, and (b) to avoid the issues of it therefore
>> > being
>> > context-sensitive, the W3C spec says this is only allowed if the
>> > argument
>> > ($x) is a string literal.
>> >
>> > So you do need to use the regex approach.
>>
>> Could you do a  fn:prefix-from-QName($x) = fn:in-scope-prefixes(.)
>> check before doing the castable as check?
>
> Nope:
>
>  http://www.w3.org/TR/2007/REC-xpath20-20070123/#id-castable
>  "[if] the input argument of the expression is of type xs:string but it is
>   not a literal string, the result of the castable expression is false."

To help me understand that :-) can you provide an example of a user
constructed string that is not a string literal?

For example, tokenizing a string into a sequence of strings... they
are all string literals aren't they?




--
Andrew Welch
http://andrewjwelch.com
Kernow: http://kernowforsaxon.sf.net/

Current Thread