qexo-general
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Qexo-general] Globals


From: Seshukumar Venkata Adiraju
Subject: RE: [Qexo-general] Globals
Date: Mon, 21 Apr 2003 08:38:06 +0530

Thanks,

Can define be used to change a value of a binding after it is defined
once.

Can I do something like,

xq.define("var1", "value1");

And then later 

xq.define("var1", "value2");

In my application I'm presenting the user a list of values from which he
selects.
The user might come back to this and change his selection and execute
xquery again.

On doing this I get an exception. 

gnu.mapping.UnboundSymbol: Unbound symbol var1
        at gnu.mapping.Constraint.get(Constraint.java:15)
        at gnu.mapping.Binding.get(Binding.java:25)
        at lambda.lambda1$T(<string>:1)
        at lambda.apply(<string>)
        at gnu.mapping.CpsMethodProc.apply(CpsMethodProc.java:49)
        at gnu.mapping.CallContext.runUntilDone(CallContext.java:239)
        at gnu.mapping.CallContext.runUntilValue(CallContext.java:253)
        at gnu.mapping.CpsProcedure.applyV(CpsProcedure.java:49)
        at gnu.mapping.CpsProcedure.applyN(CpsProcedure.java:25)
        at gnu.mapping.ProcedureN.apply1(ProcedureN.java:29)
        at gnu.xquery.util.ValuesFilter.apply(ValuesFilter.java:59)
        at gnu.mapping.CallContext.runUntilDone(CallContext.java:239)
        at gnu.mapping.CallContext.runUntilValue(CallContext.java:253)
        at gnu.mapping.CpsProcedure.applyV(CpsProcedure.java:49)
        at gnu.mapping.CpsProcedure.applyN(CpsProcedure.java:25)
        at gnu.mapping.ProcedureN.apply2(ProcedureN.java:37)
        at lambda.apply(<string>:1)
        at gnu.mapping.CallContext.runUntilDone(CallContext.java:239)
        at gnu.expr.ModuleExp.evalModule(ModuleExp.java:189)
        at gnu.expr.Interpreter.eval(Interpreter.java:537)
        at gnu.expr.Interpreter.eval(Interpreter.java:484)
        at gnu.expr.Interpreter.eval(Interpreter.java:464)
....................................




Seshu Kumar Adiraju
SETLabs, Infosys Technologies Limited
 
   In all chaos there is a cosmos,           
   in all disorder a secret order."             
                    --  Carl Jung                     
   
-----Original Message-----
From: Per Bothner [mailto:address@hidden 
Sent: Monday, April 21, 2003 6:12 AM
To: Seshukumar Venkata Adiraju
Cc: address@hidden
Subject: Re: [Qexo-general] Globals

Seshukumar Venkata Adiraju wrote:
> Is there any way I can bind some global constants before executing a
xquery?

This is an important feature, I think, but there isn't yet a standard
way to do it, so I'm loath to specify a mechanism yet, at least until
I see the next draft.

However, this is a way to do it at the Java level:

     XQuery xq = new XQuery();
     xq.define("val1", "foo");

You seem to be using an old version of Qexo - I don't see
Environment.addBinding.

What also works is to define a function in a file thus:

define function foo($var1) {
   <result>{$var1}</result>
}

You can then load this file and call the function.
For example thus:

$ java kawa.repl -f /tmp/foo.xql --
{-- 1--} foo(2)
<result>2</result>
-- 
        --Per Bothner
address@hidden   http://per.bothner.com/






reply via email to

[Prev in Thread] Current Thread [Next in Thread]