A few things for you to test...
- if you try out the pattern **.js ... can you open the corresponding
.js file?  Should be something like
http://localhost:8888/{myblock}/js/jquery.js


- Check if using the html serializer solves your problem
      <map:match pattern="*.xml" internal-only="true">
        <map:generate type="jx" src="templates/{1}.xml"/>
        <map:transform src="styles/transformations/page.xslt"/>
        <map:serialize type="html"/>
      </map:match>
- Try adding a hard space in your xslt for including scripts
        <xsl:for-each select="header/scripts/src">
          <xsl:variable name="jsSrc"><xsl:value-of
select="."/></xsl:variable>
          <script src="js/{$jsSrc}">&#160;</script>
        </xsl:for-each>


If that still doesn't work let me know.

Cheers,
Robby Pelssers

-----Original Message-----
From: JeVeoy [mailto:jor...@wisloff.org] 
Sent: Thursday, November 12, 2009 3:21 PM
To: users@cocoon.apache.org
Subject: Cocoon 2.2 serialize/transform only parts of XSL content


I'm really not sure about the origin of this error (I'm kind-of newbie
to
Cocoon), but I've searched and tried so hard to fix this issue that I
don't
recognize the guy staring at me in the mirror...

I'm using Cocoon 2.2 and have built an application according to 
http://cocoon.apache.org/2.2/1159_1_1.html first Cocoon application
using
Maven 2 . So far so good.

Then I wanted to add XSLT for transformation. This really didn't do the
trick for me. Right now I've downgraded my working example down to a
very
simple .xml-file for content ("index.xml"), a very simple .xslt-file for
transformation ("page.xslt") and of course a sitemap.xmap.

What I want to achieve is to be able to define different .css- and
.js-files
in index.xml, load this in page.xslt and make sure sitemap.xmap process
it
accordingly.

As of now only the first .js-file is processed. It doesn't matter if I
change which .js-files are included or the order of them. I've also
tried to
put 2 or more straight into the <head>-segment in page.xslt, but with
the
same result. I can see that all .js-files are sent to page.xslt (writing
out
values in a table). Here's the log4j console output:

2009-11-12 14:34:38,836 INFO '' Processed by Apache Cocoon in 33
milliseconds.
2009-11-12 14:34:38,876 INFO 'styles/css/style.css' Processed by Apache
Cocoon in 8 milliseconds.
2009-11-12 14:34:38,896 INFO 'styles/css/navigation.css' Processed by
Apache
Cocoon in 20 milliseconds.
2009-11-12 14:34:38,908 INFO 'js/jquery.js' Processed by Apache Cocoon
in 22
milliseconds.

When I check the source of the page only 1 out of 5 .js-files are
included
in the <head>-segment.

Why?

Could someone please help me?

Sourcecode:
index.xml
<?xml version="1.0" encoding="UTF-8"?>

<main_document>
  <header>
    <styles>
      <css>style.css</css>
      <css>navigation.css</css>
    </styles>
    <scripts>
      <src>jquery.js</src>
      <src>browser.js</src>
      <src>resize.js</src>
      <src>misc.js</src>
      <src>mail.js</src>
    </scripts>
  </header>
</main_document>

page.xslt
<?xml version="1.0" encoding="ISO-8859-1"?>

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
  <xsl:template match="main_document">
    <html>
      <head>
        <xsl:for-each select="header/styles/css">
          <xsl:variable name="styleCss"><xsl:value-of
select="."/></xsl:variable>
          <link href="styles/css/{$styleCss}" rel="stylesheet"
type="text/css"/>
        </xsl:for-each>
        
        <xsl:for-each select="header/scripts/src">
          <xsl:variable name="jsSrc"><xsl:value-of
select="."/></xsl:variable>
          <script src="js/{$jsSrc}"></script>
        </xsl:for-each>
        
        <!-- Had to include this to load body-segment. If not included I
got
"<body/>" (and no content) -->
        <script language="JavaScript1.2">
          function dummy() { return 0; }
        </script>
      </head>
      
      <body>
        <table>
          <!-- This code will output 5 .js-files -->
          <xsl:for-each select="header/scripts/src">
            <tr><td><xsl:value-of select="."/></td></tr>
          </xsl:for-each>
        </table>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>

sitemap.xmap
<?xml version="1.0" encoding="UTF-8"?>

<map:sitemap xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
             xsi:schemaLocation="http://apache.org/cocoon/sitemap/1.0
http://cocoon.apache.org/schema/sitemap/cocoon-sitemap-1.0.xsd";
             xmlns:map="http://apache.org/cocoon/sitemap/1.0";>
  <!-- Components -->
  <map:components>
    <map:matchers default="wildcard"/>
    <map:selectors default="browser"/>
    <map:generators default="file"/>
    <map:transformers default="xslt"/>
    <map:readers default="resource"/>
    <map:serializers default="html">
      <map:serializer name="html" logger="sitemap.serializer.html"
mime-type="text/html; charset=utf-8" pool-grow="4" pool-max="32"
                      pool-min="4"
src="org.apache.cocoon.components.serializers.HTMLSerializer">
        <doctype-default>loose</doctype-default>
        <encoding>UTF-8</encoding>
      </map:serializer>
    </map:serializers> 
  </map:components>
  
  <!-- Definition of the control flow implementation -->
  <map:flow language="javascript">
    <map:script src="flow/event.js"/>
    <map:script src="flow/jobs.js"/>
    <map:script src="flow/session.js"/>
    <map:script src="flow/show.js"/>
  </map:flow>
  
  <map:pipelines>
    <!-- Pipeline for "root", e.g. "localhost:8888/webapp/" -->
    <map:pipeline>
      <map:match pattern="">
        <map:call function="intercept"/>
      </map:match>
      
      <!-- .kont URLs are generated by the Flow system for continuations
-->
      <map:match pattern="*.kont">
        <map:call continuation="{1}"/>
      </map:match>
      
      <map:match pattern="action_*">
        <map:call function="intercept">
          <map:parameter name="action" value="{1}"/>
        </map:call>
      </map:match>
      
      <map:match pattern="*.xml" internal-only="true">
        <map:generate type="jx" src="templates/{1}.xml"/>
        <map:transform src="styles/transformations/page.xslt"/>
        <map:serialize type="xhtml"/>
      </map:match>
      
      <!-- Server -->
      
      <map:match pattern="**favicon.png">
        <map:read src="img/ico/favicon.png"
mime-type="application/png"/>
      </map:match>
      
      <!-- Common -->
      <map:match pattern="**.css">
        <map:read src="{1}.css" mime-type="text/css"/>
      </map:match>
      
      <map:match pattern="**.js">
        <map:read src="{1}.js" mime-type="text/javascript"/>
      </map:match>
      
      <map:match pattern="**.gif">
        <map:read src="img/{1}.gif" mime-type="image/gif"/>
      </map:match>
      
      <map:match pattern="**.jpg">
        <map:read src="img/{1}.jpg" mime-type="image/jpg"/>
      </map:match>
      
      <map:match pattern="**.png">
        <map:read src="img/{1}.png" mime-type="image/png"/>
      </map:match>
      
      <!--<map:handle-errors>
        <map:generate src="templates/error.xml"/>
        <map:transform src="styles/transformations/page.xslt"/>
        <map:serialize type="xhtml"/>
      </map:handle-errors>-->

    </map:pipeline>
  </map:pipelines>
</map:sitemap>
-- 
View this message in context:
http://old.nabble.com/Cocoon-2.2-serialize-transform-only-parts-of-XSL-c
ontent-tp26319511p26319511.html
Sent from the Cocoon - Users mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@cocoon.apache.org
For additional commands, e-mail: users-h...@cocoon.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@cocoon.apache.org
For additional commands, e-mail: users-h...@cocoon.apache.org

Reply via email to