I've spent most of the day today trudging through various search engines, FAQs, mailing list archives and the Cocoon-2 site, but I still seem to be missing something critical in getting something that seems simple working.
The problem revolves around how to efficiently use request parameters to choose a SQL resultset column to sort by in my stylesheet. I've got the following in sitemap.xmap: <map:match pattern="sql/*"> <map:generate src="docs/samples/sql/{1}.xml"/> <map:transform type="sql"> <map:parameter name="use-connection" value="testdb"/> </map:transform> <map:transform src="stylesheets/employees.xsl"> <map:parameter name="use-request-parameters" value="true"/> </map:transform> <map:serialize/> </map:match> I should mention that the XSLT transformer is also modified to turn on request parameters. The SQL xml document looks like: <?xml version="1.0"?> <page xmlns:sql="http://apache.org/cocoon/SQL/2.0"> <title>Employees</title> <content> <execute-query xmlns="http://apache.org/cocoon/SQL/2.0"> <query> select emid, emfname, emlname from employee </query> </execute-query> </content> </page> Both are nearly stock from the Cocoon distribution and seem to work just fine (that is, the output is what I would expect to see). My problem comes in attempting to take that resultset and process it in the stylesheet. Ideally, I'd like to create a single stylesheet that would use the HTTP request parameter order_by as the sort-by column. My XSL looks like this (including just the relevant template): <xsl:template match="sql:rowset"> <xsl:param name="order_by"/> <table border="0" width="100%"> <tr bgcolor="aaccee" align="left"> <th><a href="?order_by=sql:emid">Employee ID</a></th> <th><a href="?order_by=sql:emfname">First Name</a></th> <th><a href="?order_by=sql:emlname">Last Name</a></th> </tr> <xsl:for-each select="sql:row"> <xsl:sort select="$order_by"/> <tr> <xsl:attribute name="bgcolor"> <xsl:choose> <xsl:when test="position() mod 2 = 0"> <xsl:text>white</xsl:text> </xsl:when> </xsl:choose> </xsl:attribute> <xsl:apply-templates/> </tr> </xsl:for-each> </table> </xsl:template> It appears to me that $order_by DOES hold the value that I'm interested in, since I can include: <td><xsl:value-of select="$order_by"/></td> just after the <xsl:apply-templates/> and get the expected value in that column. The mailing list archives mentioned something similar to "*[name()=$order_by]" as being a working answer, but it doesn't seem to have any affect upon the output in this situation. With my limited knowledge of Cocoon and XSL, I'm not sure where to go from here. I have tested using URI path extensions (e.g. /sql/sql-page/ByID) and choosing the stylesheet in sitemap.xmap based on that, and that seems to work, but it would work out to be a maintenance nightmare holding onto stylesheets for each possible sortable column in each page. If I want to use request parameters, are XSPs my only option? What (obvious, I'm quite sure) options do I have at this point? Thank you for any help or pointers anyone can offer, -- Steve Philp Advance Packaging Corporation [EMAIL PROTECTED] --------------------------------------------------------------------- Please check that your question has not already been answered in the FAQ before posting. <http://xml.apache.org/cocoon/faqs.html> To unsubscribe, e-mail: <[EMAIL PROTECTED]> For additional commands, e-mail: <[EMAIL PROTECTED]>