Subject: Re: // expanding to descendant-or-self::node()
From: "Andrew Welch" <andrew.j.welch@xxxxxxxxx>
Date: Wed, 17 Sep 2008 11:08:49 +0100
|
2008/9/17 David Carlisle <davidc@xxxxxxxxx>:
>
>> its just a quirk of the way // currently works that you can do //@* at
>> all....isn't it?
>
>
> Not really, one may argue whether the current design is good or bad, but
> //@* working isn't a "quirk" or that design. It was almost certianly a
> major input to the current design that that should work.
Really - even though it implies attributes are descendants and that
the attribute axis is available from node()s?
It looks like:
/foo/bar
expands to
/child:foo/child:bar
so // had to expand to
descendant-of-self::node()
so //@* works as a side-effect of that - a happy accident if you like.
I wonder how we should approach //@* - is it less effective than
//*/@* because it gets non-element nodes, or does it come under the
category of those things to leave to the processor.
It remind me of the identity template - calling apply-templates when
matching an attribute - no big deal, but not exactly good either.
--
Andrew Welch
http://andrewjwelch.com
Kernow: http://kernowforsaxon.sf.net/
|