xsl-list
[Top] [All Lists]

Re: Re: EXSL's dyn:evaluate() and XALAN vs. xsl:use-attribute-sets

2003-08-23 10:50:30
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