Jeff,

There are several ways to accomplish content aggregation in Cocoon:

(1) cinclude and xinclude
(2) The XSLT document() function (this seems to match your approach best)
(3) map:aggregate in a sitemap
(4) XSP includes

Each method has advantages/disadvantages relative to flexibility,
performance, etc.  Take a look at the portal framework approach
(described in two of the recent Cocoon books).  AFAIK they rely on the
cinclude/xinclude and customer transformers.

-- jack


> 
> Hi there,
> 
> I'm relatively new to Cocoon and XML and I've been lurking on the list for a
> while. I have a problem that's stymied me--perhaps someone could help me? I
> want to build an aggregate web page from a set of simple XHTML pages by
> extracting the contents of their bodies and aggregating them. I have an XML
> file that designates the structure of the page:
> 
> <?xml version="1.0"?>
> <page>
>   <column>
>     <module>AboutIntro.xhtml</module>
>     <module>AboutQContinued.xhtml</module>
>   </column>
>   <column>
>     <module>AboutQ3.xhtml</module>
>   </column>
> </page>
> 
> I have a stylesheet that I mean to use to aggregate the files, but I haven't
> figured out a way to pull in the bodies of the files designated by the XML
> above. I've designated below where I've been inserting my test code:
> 
> <?xml version="1.0"?>
> <xsl:stylesheet
>     xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; version='1.0'>
>   <xsl:output method="html" />
>   <xsl:template match="/">
>     <html>
>       <xsl:call-template name="page" />
>     </html>
>   </xsl:template>
>   <xsl:template name="page">
>     <xsl:apply-templates/>
>   </xsl:template>
>   <xsl:template match="column">
>     <p>
>       <xsl:text>Column</xsl:text>
>       <br />
>       <xsl:apply-templates select="module" />
>     </p>
>   </xsl:template>
>   <xsl:template match="module">
>     <xsl:variable name="mod">
>       <xsl:value-of select="." />
>     </xsl:variable>
> <!-- HERE'S THE MISSING CODE -->
>     <xsl:text>Module</xsl:text>
>     <br />
>   </xsl:template>
> </xsl:stylesheet>
> 
> What's the missing piece? I tried using xinclude and cinclude, but my
> impression is that they are intended for an XML file to include another XML
> file, not for a stylesheet to include XML. (I do understand that a
> stylesheet _IS_ XML, though, so perhaps I just missed how I should have done
> that?). I also tried to do a map:aggregate from my pipeline, but couldn't
> figure out how to do that based on the contents of my XML file.
> 
> If my approach is misguided, feel free to correct me. Also, if I should know
> of other projects doing similar things, do let me know. (I'm just beginning
> to read about Forrest, for instance.)
> 
> Thanks, all!
> 
> Jeff
> 
> 
> 
> ---------------------------------------------------------------------
> Please check that your question  has not already been answered in the
> FAQ before posting.     <http://xml.apache.org/cocoon/faq/index.html>
> 
> To unsubscribe, e-mail:     <[EMAIL PROTECTED]>
> For additional commands, e-mail:   <[EMAIL PROTECTED]>
> 


---------------------------------------------------------------------
Please check that your question  has not already been answered in the
FAQ before posting.     <http://xml.apache.org/cocoon/faq/index.html>

To unsubscribe, e-mail:     <[EMAIL PROTECTED]>
For additional commands, e-mail:   <[EMAIL PROTECTED]>

Reply via email to