|
Subject: Re: [xsl] alternative to repeatedly walking the ancestor axis in 1.0 From: "Dimitre Novatchev" <dnovatchev@xxxxxxxxx> Date: Mon, 4 Aug 2008 07:07:12 -0700 |
>> P.S. You seems to be obsessed with an optimization of ancestor walks.
>> Are you sure you have a problem in the first place?
>
> Obsessed is the wrong word - perhaps "mildly interested" is more
> accurate - but yes I would say it's a problem to have to walk the
> ancestor axis for every node. Why? It can be expensive depending on
> the tree model and it prevents potential streaming optimisations.
>
> And of course, when the application is large enough and used by enough
> people, a slight performance tweak can save a lot of money.
Then simply use keys as shown in my first reply to this thread.
--
Cheers,
Dimitre Novatchev
---------------------------------------
Truly great madness cannot be achieved without significant intelligence.
---------------------------------------
To invent, you need a good imagination and a pile of junk
-------------------------------------
Never fight an inanimate object
-------------------------------------
You've achieved success in your field when you don't know whether what
you're doing is work or play
On Mon, Aug 4, 2008 at 4:45 AM, Andrew Welch <andrew.j.welch@xxxxxxxxx> wrote:
>>> > 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.
>
> That's what I read, I noticed it! I think I may have got it the wrong
> way around, but the principle is still the same: you get a bit more
> functionality using lang() than you do with just checking for the
> attribute.
>
> If you disagree, please say a little more than "no" with a quote.
>
>
>> P.S. You seems to be obsessed with an optimization of ancestor walks.
>> Are you sure you have a problem in the first place?
>
> Obsessed is the wrong word - perhaps "mildly interested" is more
> accurate - but yes I would say it's a problem to have to walk the
> ancestor axis for every node. Why? It can be expensive depending on
> the tree model and it prevents potential streaming optimisations.
>
> And of course, when the application is large enough and used by enough
> people, a slight performance tweak can save a lot of money.
>
> --
> Andrew Welch
> http://andrewjwelch.com
> Kernow: http://kernowforsaxon.sf.net/
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] alternative to repeatedly, Andrew Welch | Thread | Re: [xsl] alternative to repeatedly, Andrew Welch |
| Re: [xsl] Simple question? element , David Carlisle | Date | Re: [xsl] alternative to repeatedly, Wendell Piez |
| Month |