[Top][All Lists]
[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/
- [Qexo-general] Globals, Seshukumar Venkata Adiraju, 2003/04/15
- RE: [Qexo-general] Globals,
Seshukumar Venkata Adiraju <=