W3C home > Mailing lists > Public > www-dom-xpath@w3.org > May 2000

RE: [dom-xpath] Competing Proposals Proposal

From: <jeroen@tcf.nl>
Date: Sat, 13 May 2000 15:11:40 +0200 (CEST)
Message-Id: <200005131311.PAA10894@webmail2.xs4all.nl>
To: www-dom-xpath@w3.org

scott wrote:

> > I don't like the idea of the stack behind the variable list.
> > Why not a simple addVariable("what", "this"), removeVariable("what") ?
> 
> Well, you have to take this from where it comes: an implementor of an XSLT
> processor.  I may have several "what" variables in scope, but only the
> least recently pushed wins.  If I remove the last pushed "what" variable, I
> would expect the previous "what" to come back in scope.
> 
> All languages that work with variables work this way.  A use case: if I am
> an implementor of XPathScript (someone has done something like this for
> Perl), this is how I would want it to work.  If we do it the way you
> suggest, the implementor would have to kludge their own stack, which would
> be somewhat painful, I think.

The choice of using a stack, in my opinion, should be a choice made by the 
implementor not the interface. Replacing a variable is a kludge in case of the 
stack. Besides how would you make that thread safe ?



> Also, the way you have it set up there, it looks like each expression has
> it's own variables list.  This doesn't seem right to me... I would expect a
> variables stack/list to be shared among multiple XPath expressions.

+1 I agree, that's a nice feature which can easily be solved in my setup by 
adding a "setVariableList( VariableList aList )" on an expression.


> 
> > variables.addVariable( new Variable("a","b") );
> 
> What advantage does the Variable class add?  Can you give an example?

Not too many, you might be able to share them among variable lists, it could be 
a node, it can be extendable for different/future expression modules, it's a 
natural "object" and should therefore have an interface.

Best Regards,

Jeroen
Received on Saturday, 13 May 2000 09:11:43 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 19:43:07 UTC