XPath allows nodes to be selected by means of a hierarchic navigation path through the document tree.
The language is significantly larger than its predecessor, XPath 1.0, and some of the basic concepts such as the data model and type system have changed.
All three languages share the same data model (the XDM), type system, and function library, and were developed together and published on the same day.
Atomic values may belong to any of the 19 primitive types defined in the XML Schema specification (for example, string, boolean, double, float, decimal, dateTime, QName, and so on).
Operations such as arithmetic and boolean comparison require atomic values as their operands.
Informally, a path expression is a sequence of steps separated by the "/" operator, for example a/b/c (which is short for child::a/child::b/child::c).
The typing rules for the operator require that the result of the first operand is a sequence of nodes.
When using XSLT 2.0, this mode is activated by setting version="1.0" as an attribute on the xsl:stylesheet element.
This still doesn't offer 100% compatibility, but any remaining differences are only likely to be encountered in unusual cases.