On 02/03/2011 21:23, Henry S. Thompson wrote:
<xsl:variable
name="stopPat">it|its|itself|they|them|their|what|which|who|whom|this|that|these|those|am|is|are|was|were|be|been|being|have|has|had|having|do|does|did|doing|a|an|the|and|but|if|or|because|as|until|while|of|at|by|for|with|about|against|between|into|through|during|before|after|above|below|to|from|up|down|in|out|on|off|over|under|again|further|then|once|here|there|when|where|why|how|all|any|both|each|few|more|most|other|some|such|no|nor|not|only|own|same|so|than|too|very|s|t|can|will|just|don|should|now</xsl:variable>
<xsl:variable name="stops" select="tokenize($stopPat,'\|')"/>
<xsl:function name="my:stop1" as="xs:boolean">
<xsl:param name="w" as="xs:string"/>
<xsl:sequence select="some $s in $stops satisfies ($s eq $w)"/>
</xsl:function>
For obvious reasons this seems unlikely to be very efficient.
personally I'd just use <xsl:sequence select="$s=$stops"/>
and leave it to the query optimiser to make this common requirement
efficient rather than using a more complicated idiom and then hoping the
query optimiser recognises it.
As Dimitre just commented if you want to manually control the efficiency
you can build different structures "by hand" or (you could use a xsl:key
(although I believe the commercial version of saxon's optimiser may
index the sequence lookup even without the hint of using xsl:key, which
is a bit inconvenient for a sequence of strings rather than nodes)
David
--~------------------------------------------------------------------
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>
--~--