From: trubliphone <tru...@go...> - 2010-07-14 15:03:29
|
What I do is I store the function name in a configuration file that is read at runtime. The actual code looks like this: for $facet in $config/descendant::*[name()="facet"] (: $config is a configuration file :) (: the fn used by each facet is defined there :) let $fnURI := "http://www.my.namespace" let $fnName := $facet/@fn let $fn := util:eval(concat("util:function(QName('",$fnURI,"','",$fnName,"'),2)")) return <result>{someOtherFn($fn,$facet/arg)}</result> Does that count as dynamic? On Wed, Jul 14, 2010 at 7:54 AM, Evgeny Gazdovsky <gaz...@gm...>wrote: > 2010/7/14 trubliphone <tru...@go...>: > > Actually, I think I've managed to do this (in an ugly, hacky way): > > > > let $fnName := "foo:Fn1" > > let $fn := > > util:eval(concat("util:function(QName('www.foo.bar','",$fnName,"'),1)")) > > util:call($fn,((1,2,3))) > > > Yes, you can do it, but just the name of called function is statikaly > known. > You can't use this for dinamical names, like > > let $fnName := request:get-parameter("func-name", "default:func") (: > or another method to get the name of function during runtime:) > let $fn := > util:eval(concat("util:function(QName('www.foo.bar','",$fnName,"'),1)")) > util:call($fn,((1,2,3))) > |