commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Steve Pannier" <Steve_Pannier....@jacada.com>
Subject Re: [JXPath] Use of contexts/variables
Date Mon, 24 Feb 2003 16:55:28 GMT

Dmitri,

I'm not clear on how implementing the Variables interface
can help us.

I'm not sure I explained our situation well enough.  The data
map we keep for our variables has a top level element whose
key is the variable name.  For example, if the user's variable
name is "Var1", then the top level element of that variable's
data map is "Var1" also.  Since we need to allow access to
any number of the user's variables in a single xpath expression,
we decided to define each of their variables as JXPath
variables, and add them to a NULL root context.  This is why
the user must use $Var1/Var1/...." in their expression (the
1st "Var1" being the JXPath variable name, the 2nd one
being the top level element of the map).  We would like them
to only have to enter "$Var1" (or "/Var1") in their expression
to reference everything below the top level element of the
variable's data map.  That's why I was thinking we would
need to pre-parse the expression itself and add in the "/Var1"
for access to the top level element of the variable's map.  We
do need them to specify the "Var1" in the expression so we
know which variable's map they are referring to (their
variables may contain like-named sub elements so we
need a way to avoid name collisions - for example, we need
to be able to differentiate between "Var1/count" and
"Var2/count").

If necessary, we can modify the JXPath code itself to implement
this, but I was hoping there would be another way.  I've tried
playing around with nested contexts, but with no luck so far.

Anyway, I hope this is explains things better.  Let me know
if implementing the Variables interface is still the way to
accomplish this.

Regards.


Steve Pannier
Jacada, Inc.
(763) 201-0002 Ext. 219
spannier@jacada.com
http://www.jacada.com


> Steve,
>
> This is an easy one.  In JXPath Variables is an interface - you are
> free to provide your own implementation and install it on JXPathContext
> by calling context.setVariables().  It is a very simple interface and
> you won't have any trouble meeting your requirement.
>
> I hope this helps.
>
> - Dmitri
>
>
> --- Steve Pannier <Steve_Pannier.CST@jacada.com> wrote:
> > Dmitri,
> >
> > Here's a new question for you.
> >
> > Our product allows the user to include any number of
> > "variables" in their xpath expression.  These are not
> > xpath variables, but rather variables they define in our
> > design time framework.  The user is free to define the
> > type for each variable, and they can define structure
> > types.  Each variable's data is contained in a Map
> > hidden in a subclass of the variable.  Now, when they
> > provide an xpath expression, we allow them to include
> > any number of these variables they choose to.  So, in
> > order to allow us to evaluate these expressions without
> > having to first parse the expression, we decided to create
> > a root context of NULL, and then add each variable's
> > data map to the context as an xpath variable.  The result
> > of this is, if the user has a variable named "Var1", they
> > must reference it in their expression as "$Var1/Var1".
> >
> > We would rather the user not have to use this syntax in
> > expressions for referencing variables.  We are talking
> > about allowing them to simply use "$Var1" in their
> > expression.  Then before evaluating the expression we
> > would substitute the "$Var1" with "$Var1/Var1".  This
> > would require us to either write our own pre-parser, or
> > somehow make use of JXPath code to do this.  But, I'm
> > curious if there's any other way to attack this.  Maybe
> > by defining the context differently.  Any ideas?
> >
> > Let me know if the above explanation of what we're
> > trying to do is not clear.
> >
> >
> > Steve Pannier
> > Jacada, Inc.
> > (763) 201-0002 Ext. 219
> > spannier@jacada.com
> > http://www.jacada.com
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
> > For additional commands, e-mail: commons-user-help@jakarta.apache.org
> >
>
>
> __________________________________________________
> Do you Yahoo!?
> Yahoo! Tax Center - forms, calculators, tips, more
> http://taxes.yahoo.com/
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: commons-user-help@jakarta.apache.org
>
>



Mime
View raw message