Subject: Re: [xsl] are all strings in a sequence valid potential QNames|
From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx>
Date: Thu, 04 Feb 2010 10:13:20 +0100
> 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?
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."
-- XSLT/XQuery/XPath training after http://XMLPrague.cz 2010-03-15/19 XSLT/XQuery/XPath training: San Carlos, California 2010-04-26/30 Vote for your XML training: http://www.CraneSoftwrights.com/s/i/ Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/ Training tools: Comprehensive interactive XSLT/XPath 1.0/2.0 video Video lesson: http://www.youtube.com/watch?v=PrNjJCh7Ppg&fmt=18 Video overview: http://www.youtube.com/watch?v=VTiodiij6gE&fmt=18 G. Ken Holman mailto:gkholman@xxxxxxxxxxxxxxxxxxxx Male Cancer Awareness Nov'07 http://www.CraneSoftwrights.com/s/bc Legal business disclaimers: http://www.CraneSoftwrights.com/legal