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 [EMAIL PROTECTED] 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 <[EMAIL PROTECTED]> 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 > > [EMAIL PROTECTED] > > http://www.jacada.com > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > __________________________________________________ > Do you Yahoo!? > Yahoo! Tax Center - forms, calculators, tips, more > http://taxes.yahoo.com/ > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
