Stefan Baramov wrote:
> Okay, my real question is how to aggregate unknown number of documents?
> 
> Here is my case (using Forrest 0.6): In my xdocs folder I have a folder 
> called tasks. It contains a collection of XML formatted files, where each 
> file describes a single task. I like to aggregate them all in one single 
> document "Task Summary". Here is what I have in site.xml file:
> 
> --- site.xml ---
> 
>   <about label="MyProd" tab="home">
>     <index label="Welcome" href="index.html" description="Welcome to MyProd"/>
>     <tasksummary label="Task Summary" href="tasksummary.html"/>
>   </about>
> 
> Here the tasksummary.html points to a tasksummary.xml pipeline defined in 
> sitemap.xmap (It took me a significant time to figure out that a pipeline is 
> matched by its "pattern" instead of sort of ID)
> 
> <map:pipeline>
>       <map:match pattern="teamtask2section">
>               <map:generate src="{project:content.xdocs}/tasks/B001.teamtask" 
> />
>               <map:transform 
> src="{project:resources.stylesheets}/teamtask2sec.xsl" />
>               <map:serialize type="xml"/>
>       </map:match>
> </map:pipeline>
>       
> <map:pipeline>
>       <map:match pattern="tasksummary.xml">
>               <map:aggregate element="document">
>                       <map:part src="{project:content.xdocs}/task_header.xml" 
> element="header"/>
>                       <map:part src="cocoon:/teamtask2section" 
> element="body"/>
>                       <map:part src="{project:content.xdocs}/footer.xml" 
> element="footer"/>
>               </map:aggregate>
>               <map:serialize type="xml"/>
>       </map:match>
> </map:pipeline>
> 
> where:
>       task_header.xml is a generic header file. 
>       footer.xml is a generic footer XML file
> 
> The real problem is that in the teamtask2section pipeline I can specify only 
> one task file B001.teamtask. And I have multiple: B002, B003 and so on. I 
> tried wildcards such as : 
>       <map:generate src="{project:content.xdocs}/tasks/*.teamtask" />
> But it does not work. So how do I aggregate unknown number of XML files 
> located in subdirectory of xdocs?

Oh that is easy. Use the Cocoon "Directory generator".
http://cocoon.apache.org/2.1/userdocs/generators/directory-generator.html

--David

> -----Original Message-----
> From: David Crossley [mailto:[EMAIL PROTECTED]
> Sent: Monday, January 31, 2005 4:43 PM
> To: [email protected]
> Subject: Re: Aggregation Example
> 
> 
> Stefan Baramov wrote:
> > Can someone post a simple aggregation example. I've read the user mail 
> > list, I've searched Forrest and Cocoon documentation on aggregation, and I 
> > found very little information. It has to be simple but I can get it right. 
> > I have no experience with Cocoon and I am getting lost. 
> > 
> > I would like to aggregate several XML files in a single one. 
> > How do I define my pipeline (in sitemap.xmap)? 
> > Or do I need multiple piplelines? 
> 
> http://cocoon.apache.org/2.1/userdocs/concepts/sitemap.html#Aggregating
> http://cocoon.apache.org/2.1/userdocs/concepts/sitemap.html#Protocols
> 
> There is an example in the Forrest core, but perhaps we should
> put a very basic example in the "forrest seed" site.
> 
> You have not told us which version of forrest you are using.
> For the current trunk (i.e. 0.7-dev) see webapp/sitemap.xmap
> around line 490 and follow the aggregation where it gets its
> parts from other sitemap matches using the "cocoon:" protocol.
> 
> > How do I link the generate document with site.xml?
> 
> Aggregation is done in the sitemap.xmap ... that is nothing
> to do with site.xml ... We need an FAQ to reduce the
> confusion caused by the name site.xml
> 
> --David

Reply via email to