If I use an ARQParser to parse the string "?x < 10"
I get an E_LessThan object with the expected var and and XMLSchema#integer
If I use NodeFactory.createLiteral(LiteralLabelFactory.createTypedLiteral(
10 )) I get the XMLSchema#int.
This means that the following fails
{noformat}
E_LessThan lt1 = new E_LessThan( new ExprVar(Var.alloc( "x" )),
NodeFactory.createLiteral(LiteralLabelFactory.createTypedLiteral( 10 ));
E_LessThan lt2 = ARQParser.parse( "?x < 10" )
ElementFilter ef1 = new ElementFilter( lt1 );
ElementFilter ef2 = new ElementFilter( lt2 );
assertTrue( ef1.equalTo( ef2 ) );
{noformat}
It fails because ElementFilter.equalTo executes lt1.equalsBySyntax( lt2 )
and by syntax they are different. Even though they will return the same
results for any set of data.
Should E_LessThan and other similar functions do something more akin to the
NodeValue.compare() to determine if the functions are equal?
I'm not sure what a good solution would be here but I think this is a
problem.
comments?
Claude
Now this doesn't make a difference during evaluation as they both evaluate
as BitInteger. However, when comparing the
--
I like: Like Like - The likeliest place on the web
<http://like-like.xenei.com>
LinkedIn: http://www.linkedin.com/in/claudewarren