Subject: Re: dyn:evaluate question
From: Dimitre Novatchev <dnovatchev@xxxxxxxxx>
Date: Thu, 24 Mar 2005 10:31:57 +1100
|
> I want to implement a per document view. This view extracts html
> snippets from a snippet rep. This way user from apache forrest can
> implement their own view for each document or use the default view
> without knowing xsl.
A known working solution is to dynamically modify the stylesheet (e.g.
it's DOM) by setting the value of the "href" attribute to whatever
necessary and *only then* pass this stylesheet to the XSLT processor.
Cheers,
Dimitre Novatchev
On Wed, 23 Mar 2005 14:46:55 +0100, Thorsten Scherler
<thorsten@xxxxxxxxxx> wrote:
> On Wed, 2005-03-23 at 13:19 +0000, Michael Kay wrote:
> > We used to get a lot of variations on attempts to do dynamic inclusion, but
> > this is one of the most imaginative.
> >
>
> LOL
>
> cheers ;-)
>
> > xsl:include is a compile time construct, it's effect happens right at the
> > start of processing, to assemble a stylesheet for compilation. There's no
> > way a variable can be evaluated before the stylesheet has been compiled, so
> > trying to refer to a variable here simply isn't going to work.
> > dyn:evaluate() does things at run-time that would normally be done at
> > compile-time, it isn't going to enable you to do at compile time something
> > (evaluating a variable) that can only possibly be done at run-time.
> >
> > You don't need a workaround, you need a different design: but you haven't
> > said what the problem is, so I can't give you one.
> >
>
> I want to implement a per document view. This view extracts html
> snippets from a snippet rep. This way user from apache forrest can
> implement their own view for each document or use the default view
> without knowing xsl.
>
> sample for a view:
> <forrest:view
> xmlns:forrest="http://apache.org/forrest/templates/1.0" type="xhtml">
>
> <forrest:contract name="meta"/>
>
> <forrest:hook name="container">
> <forrest:hook name="branding">
> <forrest:contract name="projectlogo"/>
> <forrest:contract name="grouplogo"/>
> <forrest:contract name="searchbox"/>
> <forrest:contract name="nav-main"/>
> </forrest:hook>
> <forrest:hook name="spacer" />
> <forrest:contract name="nav"/>
> <forrest:contract name="content"/>
> </forrest:hook>
> <forrest:contract name="feedback"/>
> </forrest:view>
>
> pipe:
>
> index.html -> requested page
>
> index.xml -> content for the page
> index.fv -> styling information about the page (as forrest:view)
>
> Through the prepare.include.* and prepare.xhmtl.* I am calling html
> snippets from a rep based on index.fv.
>
> On the final stylesheet I am then creating the page like
> <xhtml>
> <head>
> <xsl:call-template name="getHead"/>
> <style type="text/css">
> <xsl:call-template name="getCss"/>
> </style>
> </head>
> </xhtml>
>
> cheers for any suggestions
> salu2
>
> > Michael Kay
> > http://www.saxonica.com/
> >
> >
> >
> > > -----Original Message-----
> > > From: Thorsten Scherler [mailto:thorsten@xxxxxxxxxx]
> > > Sent: 23 March 2005 13:00
> > > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> > > Subject: dyn:evaluate question
> > >
> > > Hello list,
> > >
> > > I am trying to dynamically include a stylesheet like this:
> > > <xsl:variable name="request">index</xsl:variable>
> > > <xsl:include href="cocoon:/prepare.include.dyn:evaluate($request)"/>
> > >
> > > but the dyn:evaluate($request) -part will not get resolved.
> > >
> > > As soon I change it to
> > > <xsl:include href="cocoon:/prepare.include.index"/>
> > > I get my stylesheets.
> > >
> > > Am I using the dyn:evaluate wrong? Are there a workaround?
> > >
> > > TIA
> > > --
> > > thorsten
> > >
> > > "Together we stand, divided we fall!"
> > > Hey you (Pink Floyd)
> >
> --
> thorsten
>
> "Together we stand, divided we fall!"
> Hey you (Pink Floyd)
|