xsl-list
[Top] [All Lists]

Re: [xsl] alternative to repeatedly walking the ancestor axis in 1.0

2008-08-04 03:40:38
Out of interest, does xml:lang annotate the input tree, or does the
lang() function walk the ancestor axis behind the scenes?  Or
is it all implementation dependent?

It's implementation-dependent, of course.

Saxon walks the ancestor axis when you use the lang() function. I think it's
used too rarely to be worth optimizing.

So (for Saxon anyway) doing:

test="lang('foo', .)"

is pretty much the same as:

test="ancestor-or-self::*/@xml:lang = 'foo'"

except that the lang() function should return true if the lang tested
is a subset of that declared in the attribute.

No. See: http://www.w3.org/TR/xpath-functions/#func-lang

fn:lang($testlang as xs:string?, $node as node()) as xs:boolean

"This function tests whether the language of $node, or the context item if the 
second argument is omitted, as specified by xml:lang attributes is the same as, 
or is a sublanguage of, the language specified by $testlang."

Please notice "sublanguage" word.

P.S. You seems to be obsessed with an optimization of ancestor walks. 
Are you sure you have a problem in the first place?
--
Vladimir Nesterovsky
http://www.nesterovsky-bros.com/




--~------------------------------------------------------------------
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>