Hi,

This question may seem very simple, but bear with me as I am quite new to cocoon.

I am using Cocoon 2.  I have an XSP page [testdb.xsp], and want to pass this through a 
stylesheet [testdb.xsl], then apply the built-in cocoon 2 logic sheets [particularly 
the esql], apply a xml to html stylesheet and then serialize as html.  What do I have 
to do to make this work?

I have started by placing using esql from the testdb.xsp directly - this works as 
expected.  Trouble is, I want the SQL queries to be "generated" by the testdb.xsl 
stylesheet, so removing the esql from testdb.xsp and making the testdb.xsl generate 
them instead does not "execute" them - they stay as <esql:...> even in the outputted 
html.

I have tried many things, such as adding/removing the esql namespace from the start of 
the original xsp document, the xsp generated from testdb.xsl, etc, the files below are 
what are "known" to not work.  I think it is just something very simple that I am 
missing...

Here is the relevant part of the sitemap:
   <map:match pattern="testdb">
     <map:generate type="serverpages" src="testdb.xsp"/>
     <map:transform src="testdb.xsl"/> 
     <map:transform src="table.xsl"/> 
     <map:transform src="stylesheets/dynamic-page2html.xsl"/> 
     <map:serialize/>
   </map:match>

testdb.xsl:
<?xml version="1.0" encoding="ISO-8859-1"?>


<xsl:stylesheet
    version="1.0"
    xmlns:xsp="http://apache.org/xsp";
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
    xmlns:xsp-request="http://apache.org/xsp/request/2.0";
    xmlns:esql="http://apache.org/cocoon/SQL/v2";
>

<xsl:template match="/">
  <xsp:page>
    <xsl:apply-templates/>
  </xsp:page>
</xsl:template>

  <xsl:template match="data-display">
    <esql:connection>
      <esql:pool>personnel</esql:pool>
      <esql:execute-query>
        <xsl:apply-templates select="query"/>
        <xsl:apply-templates select="display"/>
      </esql:execute-query>
    </esql:connection>
  </xsl:template>


  <xsl:template match="query">
        <esql:query>
          <xsl:value-of select="."/>
        </esql:query>
  </xsl:template>

  <xsl:template match="display">
    <esql:results>
      <xsl:apply-templates/>
    </esql:results>
  </xsl:template>

  <xsl:template match="display-table">
    <br/>
    <table>
      <header>
        <xsl:for-each select="column">
          <cell>
            <text>
              <xsl:value-of select="title"/>
           </text>
          </cell>
        </xsl:for-each>
      </header>

      <!-- header finished, now the data -->

      <body>
        <esql:row-results>
          <row>
            <xsl:for-each select="column">
              <cell>
                <!-- make a reference to the action here -->
                <action>
                  <xsl:value-of select="action/@name"/> <xsl:value-of 
select="action/@key"/>
                </action>
                <text>
                  <xsl:value-of select="data/@source"/>
                  <xsl:value-of select="text"/>
                </text>
              </cell>
            </xsl:for-each>
          </row>
        </esql:row-results>
      </body>
    </table>
  </xsl:template>

  <xsl:template match="@*|node()" priority="-1">
    <xsl:copy>
      <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
  </xsl:template>

</xsl:stylesheet>

testdb.xsp:
<?xml version="1.0"?>

<xsp:page language="java"
  xmlns:xsp="http://apache.org/xsp";
  >
  <page>
    <title>Test</title>

    <data-display>
      <query>SELECT uid, userid, password FROM users</query>
      <display>
        <display-table>
          <column>
            <title>Username</title>
            <data source="userid"/>
          </column>
          <column>
            <title>Password</title>
            <action name="view" key="uid"/>
            <data source="password"/>
          </column>
          <column>
            <title></title>
            <action name="delete" key="uid"/>
            <text>delete</text>
          </column>
        </display-table>
      </display>
    </data-display>
  </page>
</xsp:page>

thanks for any help,





_______________________________________________________________________
Never pay another Internet phone bill!
Freeserve AnyTime, for all the Internet access you want, day and night, only £12.99 
per month.
Sign-up at http://www.freeserve.com/time/anytime



---------------------------------------------------------------------
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]>

Reply via email to