xsl-list
[Top] [All Lists]

Re: Concat dynamically assigned xslt

2002-11-25 14:45:21
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>



<Prev in Thread] Current Thread [Next in Thread>