Lists Home |
Date Index |
> Hi Jonathan,
> > As for XPath, I think that the *lack* of datatypes made XPath 1.0 do
> > an awful lot of guessing, and in an attempt to keep things simple,
> > it said that ALL numbers are floating point numbers. I don't think
> > that the lack of datatypes in the data XPath 1.0 used made things
> > simpler or more straightforward, it led to baroque rules for
> > guessing types.
> However baroque, it has to be said that the rules made XPath 1.0 very
> easy to use. It may seem baroque to implementers, who have to delve
> into the details, but to users XPath 1.0 appears to "just work". The
> same cannot be said of XPath 2.0.
It's neither baroque nor difficult for implementors either. The part of XPath
1.0 data typing that has the most coercion rules is the definition of
EqualityExpression (i.e. interpretation of "=" and "!=".) The entire
implementation of this is less than 100 lines of Python code, and very clear
Python code, I think. In addition, about half of of this code is shared with
the implementation of RelationalExpression.
I would guess that the equivalent implementation in XPath 2.0 would run well
past 1000 lines of Python code. This is just part of the reason why I don't
plan to implement XPath 2.0. The net gain for such staggering complexity is
frightfully minimal. Jonathan's examples, batting as hard as he can for data
types, underscore this all too well.
Uche Ogbuji Fourthought, Inc.
http://uche.ogbuji.net http://4Suite.org http://fourthought.com
Apache 2.0 API - http://www-106.ibm.com/developerworks/linux/library/l-apache/
Python&XML column: Tour of Python/XML - http://www.xml.com/pub/a/2002/09/18/py.
Python/Web Services column: xmlrpclib - http://www-106.ibm.com/developerworks/w