Subject: RE: Using "except" with node sequences
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Mon, 4 Aug 2008 20:02:04 +0100
|
> Also, thanks Michael for your suggestion. The code I posted
> was a simplified form of my actual code, in which I'm
> combining two sequences produced by two different functions,
> both of which are a bit complex for a single predicate:
>
> select="$active_data except $new_data"
>
> Both of these variables are constructed by functions executed
> on the original $normalized_data variable. Both use
> <xsl:sequence /> to return a sequence of elements. My
> impression was that by using <xsl:sequence />, I am returning
> references to the existing nodes in $normalized_data, and not
> actually creating copies of those nodes in memory. Is this
> in fact the case?
yes.
>
> An alternate method I considered was to create Boolean
> functions that would allow me to construct a predicate like
> you suggested:
>
> select="$normalized_data[fn:active(.) and not(fn:new(.)]
>
> But since I use $active_data and $new_data elsewhere in my
> stylesheet, I decided against it, trying to avoid evaluating
> those Boolean functions more than necessary.
>
> In general, which approach is better practice?
I would think the boolean function probably gives better reusability.
Michael Kay
http://www.saxonica.com/
|