I would not create a huge, dynamically created XSLT. Cocoon offers you
aggregation or CInclude/XInclude. So I would transform the output of the
transformer for example to the following:
<PAGE>
<xi:include href="cocoon:/abstract1-first"/>
...
<xi:include href="cocoon:/abstract5-fifth"/>
</PAGE>
The generator would then give only the information how to get the
content of the abstract and the name of the xsl. The sitemap would match
on this:
<map:match pattern="abstract*-*">
<map:generate src="content-abstract{1}"/>
<map:transform src="stylesheets/{2}.xsl"/>
<map:serialize type="xml"/>
</map:match>
So every abstract is transformed separately and aggregated at the end to
a "big thing".
Your original abstract pipeline I would change to:
<map:match pattern="abstractpage_*.html">
<map:generate src="getEveryMetaInfoFromDBAsXML.xsp"/>
<map:transform src="transformers/convertMetaInfo2XInclude.xsl"/>
<map:transform type="xinclude"/>
<map:transform src="stylesheets/maybeSomePostProcessing.xsl"/>
<map:serialize type="html"/>
</map:match>
So the whole processing is not a XSLT problem, but a solvable Cocoon
problem. Is the propagated way an option? Or is your way already fixed?
Regards,
Joerg
Robert Sösemann wrote:
I am not sure if this is a cocoon specific problem or solveable with XSL
only. I have this problem.
I am working on a CMS where non-programmers can feed articles to a db.
Cocoon output those articles in different ways. The problematic view is the
multi-article page. There abstracts of many different article types are
displayed. As I want the system to be extensible - that means without one
big pre-.made xslt - the user can write there own stylesheet for EVERY
article. All they should have to do is save the xsl and write its path to
the db.
As I have this multi-article view I would need to dynmically merge all
assigned xslt to one sytlesheet that could be a cocoon transformer in my
pipeline:
SITEMAP
....
<map:match pattern="abstractpage_*.html">
<map:generate src="getEverythingFromDBAsXML.xsp"/>
...? MAGIC COMPONENT ?
<map:transform src="dynamicallyGenerated.xsl"/>
<map:serialize type="html"/>
</map:match>
....
GENERATOR:
...
<PAGE>
<ABSTRACT nr="1" styleMeWith="first.xsl">
...
</ABSTRACT>
...
<ABSTRACT nr="5 styleMeWith="fifth.xsl
...
</ABSTRACT>
..
</PAGE>
Can you imagine a solution to this problem. Maybe with meta-stylesheets?
Thanks in advance!
Rob
---------------------------------------------------------------------
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:
<cocoon-users-unsubscribe(_at_)xml(_dot_)apache(_dot_)org>
For additional commands, e-mail:
<cocoon-users-help(_at_)xml(_dot_)apache(_dot_)org>