Didn't we have the same question on the list a week or two ago?
I can't see anything illegal in your stylesheet, there is rule against
using a result tree fragment in a sort key. This sounds like a
non-conformance in your XSLT processor.
On the other hand, what you are trying to do is pointless. If you define
a sortkey with select="$x", then whatever the value of $x, it will be
the same for all the items you are sorting, so there is no point in
sorting them.
You are imagining, of course, that it does select="dyn:evaluate($x)" -
but it doesn't.
Michael Kay
-----Original Message-----
From: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com] On Behalf Of
Greg Johnson
Sent: 15 July 2003 18:52
To: XSL-List(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] using a variable in sort block
What are the restrictions on using xsl:variables?
Am I not allowed to use it in an xsl:sort element?
I get the following error for the folowing xsl fragment:
<xsl:variable name="sortby">ARRIVED</xsl:variable>
<xsl:variable name="sortorder">descending</xsl:variable>
<xsl:template match="REPORT">
<h1>
<xsl:value-of select="$sortby"/>
</h1>
<xsl:apply-templates select="INTERCHANGE">
<xsl:sort select="{$sortby}" order="{$sortorder}" />
<!-- ERROR HERE --> </xsl:apply-templates> </xsl:template>
----
Error in XPath Expression: Cannot use result tree fragment.
----
The <xsl:value-of select="$sortby"/> outputs "ARRIVED"
correctly, but dies inside the "sort" element.
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list