xsl-list
[Top] [All Lists]

Re: [xsl] making dynamic evaluation via xsl:evaluate more dynamic

2012-04-17 16:50:58
Just a thought - now XPath 3.0 has the Let Expression, wouldn't it be
possible to safely wrap the XPath string with a Let Expression that
declares the dynamic variables - before passing this as a parameter to
xsl:evaluate?

Phil

2012/4/17 Michael Kay <mike(_at_)saxonica(_dot_)com>:
By all means raise this feedback with the XSL WG. The best way to do so is
via the W3C bugzilla system - that's the way the WGs manage their agenda.

I think the answer is that no-one has previously suggested a need for this
feature. It strikes me as raising a lot of questions. In your use case, how
do you find out what external variables the XPath expression uses, so that
you can bind the right names? If you don't know the names statically, you
presumably need some way to discover them dynamically. But then, knowing the
names of the parameters isn't much use if you don't know their semantics;
where does this knowledge come from?

Michael Kay
Saxonica


On 17/04/2012 18:53, Jakub Malý wrote:

Hello,
the new instruction evaluate allows for dynamic evaluation of expressions
in
stylesheets.
This:
<xsl:evaluate xpath="'1 + 1'">
</xsl:evaluate>
Returns 2

All variables in the evaluated expression must be bound using with-param,
like in
<xsl:evaluate xpath="'$p1 + $p2'">
  <xsl:with-param name="p1" select="1" />
  <xsl:with-param name="p2" select="2" />
</xsl:evaluate>
Which returns 3.

The syntactic rules for with-param are I think the same as in the case of
call-template. Aren't those unnecessarily restrictive in this case?
I suppose (please correct me, if I am wrong) the cost of dynamic
evaluation
would not change much, if attribute value template was allowed for the
attribute name of with-param in evaluate, such e.g.:
<xsl:evaluate xpath="'$p1 + $p2'">
  <xsl:with-param name="{'p' || '1'}" select="1" />
  <xsl:with-param name="{'p' || '2'}" select="2" />
</xsl:evaluate>

Did this question arise when semantics of evaluate was discussed?
I have encountered an application where this would come in handy (well, it
would provide an alternative solution to a problem which I solved
differently), so maybe those applications that require dynamic evaluation
would appreciate it as well. I was a bit surprised that it is not
possible,
because it feels appropriate to me. When dealing with dynamic evaluation,
why not let the names of variables to by dynamic as well?

Jakub Maly.
http://www.xrg.cz



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or 
e-mail:<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--