"Andrew" == Andrew Welch
<andrew(_dot_)j(_dot_)welch(_at_)gmail(_dot_)com> writes:
>>> match="foo[//bar]"
>>
>>> match="foo"
>>
>>> Should the former be avoided, or because it's within a match
>>> pattern it's converted to a simple lookup so it's fine?
>>
>> I don't know the details of your processor on that point, but
>> out of interest, if you only match on the main input tree, you
>> can replace the former by:
>>
>> <xsl:variable name="has-bar" as="xs:boolean" select="
>> exists(//bar)"/>
>>
>> <xsl:template match="foo[$has-bar]">
Andrew> Indeed (apart from 1.0 where you can't use variables in
Andrew> match patterns)... the question I'm asking though is
Andrew> whether you need to workaround potentially expensive match
Andrew> patterns (as they will be evaluated per element), or
Andrew> whether through the inbuilt pattern matching process it's
Andrew> actually a good idea to move work into the match pattern.
Andrew> For example,
Andrew> match="foo[ancestor::bar/@type = 'A']"
Andrew> and
Andrew> match="foo[ancestor::bar/@type = 'B']"
Andrew> (or "bar[(_at_)type = 'A']//foo" but I prefer the above)
Andrew> Is it better to pass down the type through parameters to
Andrew> avoid the predicate, or is there no need to worry about it
Andrew> because it becomes a simple lookup?
Andrew> I'm pretty sure it's the latter....
My attitude to such a question (whatever the language) would be to
code the predicate, and complain to an implementor if this wasn't at
least as quick as the alternatives.
--
Colin Adams
Preston Lancashire
--~------------------------------------------------------------------
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>
--~--