xsl-list
[Top] [All Lists]

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

2010-02-04 03:30:00
On 4 February 2010 09:13, G. Ken Holman 
<gkholman(_at_)cranesoftwrights(_dot_)com> 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/

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>