Subject: Re: [xsl] Re: EXSL's dyn:evaluate() and XALAN vs. xsl:use-attribute-sets From: raphead@xxxxxxx Date: Sat, 23 Aug 2003 19:50:30 +0200 (MEST) |
Hi Dimitre and thanks so far, >>> According to the XSLT 1.0 spec "The value of the use-attribute-sets >>> attribute is a whitespace-separated list of names of attribute sets. Each >>> name is specified as a QName ..." >>> >>> A QName cannot be calculated dynamically -- it must be known at compile >>> time. >> >> I'm aware of that but my understanding of the dyn:evaluate extension is, >> that is let's >> say 'on level above the xslt processing'. > >No, extension functions are invoked at run time. They are not part of a >pre-processor. > >> While reading the spec on >> exslt.org >> the following sentence confirmed this somehow: >> >> ...The string is always evaluated exactly as if it had been literally >> included in place of the call to the dyn:evaluate function. > >This does not say at all that dyn:evaluate is invoked prior to the XSLT >transformation -- what made you think so? > First of all I thought that because what I read in http://www.w3.org/TR/xslt#qname A qname can be passed as parameter which is wrong. Then I read about evaluate and after I read the spec of dyn:evaluate() It sounded like the solution for this problem... well I thought this problem must have many people and therefore they intended dyn:xxx. Now I have to admit, that there is no hint that all that happens at pre-compilation time. > >> >> And if you're right, how can one determine for which params etc. >> dyn:evaluate will work? > >dyn:evaluate() works in your case. The problem is that a QName cannot be substituted >by something (the result of dyn:evaluate()) returned dynamically at run time. > >>> >>> Therefore, what you're trying to achieve is impossible in this way. >>> >> >> Do you have an ide, how to achive it? I also tried with chained templates >> and parameters but >> then I really stuck with the problem with qnames. > >A simple example: Why not include an top-level element belonging to a non-xsl >namespace and having the necessary attributes. Then you can just copy them. > I thought about that but I don't think that this is an solution. Right! I could dynamically decide depending on a parameter to do something - in case of copy: copy some xml to the current position. But this won't fix my problem as I'm working with fo and I need exactly the behaviour of the use-attribute-sets parameter which creates attributes from a XML-fragment. Now I thought about using call-template but it has the same limitation: The name must be qname :-/ Thomas -- COMPUTERBILD 15/03: Premium-e-mail-Dienste im Test -------------------------------------------------- 1. GMX TopMail - Platz 1 und Testsieger! 2. GMX ProMail - Platz 2 und Preis-Qualitätssieger! 3. Arcor - 4. web.de - 5. T-Online - 6. freenet.de - 7. daybyday - 8. e-Post XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Re: EXSL's dyn:evaluate(), Dimitre Novatchev | Thread | [xsl] Re: Re: EXSL's dyn:evaluate(), Dimitre Novatchev |
[xsl] Re: Re: why is "(chapter//foo, Dimitre Novatchev | Date | Re: AW: AW: [xsl] why is "(chapter/, Robert P. J. Day |
Month |