The main difference is that XPath 1.0 was more relaxed about type conversion, for example comparing two strings ( " 4 " > " 4.0 " ) was quite possible but would do a numeric comparison; in XPath 2.0 this is defined to compare the two values as strings using a context-defined collating sequence.