The following is exiled from the W3C Recommended Standard XML Path Language (XPATH) 1.0 Edition 1999-11-16
XPath is a language that is addressed in an XML document, designed for XSLT and XPointer. XPath is the result of providing a public grammar and semantic functionality between XSL transform (XSLT) and XPointer. The main purpose of XPath is to address in an XML document. Support this main purpose, it also provides basic functions to manipulate strings, numbers, and Boolean values. XPath uses a simple non-XML syntax to use in the URI and XML attribute values. XPath works on an abstract logical structure of an XML document rather than surface syntax. The name of the XPath is derived from its path representation in the URL to be positioned in the hierarchy of the XML document.
In addition to being used for addressing, the XPath design has a natural subset that can be used to match (testing if a node is matched with a pattern match); this usage of XSLT is described in XSLT.
XPath regards the XML document as a node tree model. The node type has different types such as elements, attributes, texts. XPath defines a string value of each type of node. Some types of nodes also have their names. XPath fully supports XML namespaces. Thus, the name model of a node is a pair of local parts and possible air-name space URI, called the extension.
The following is taken from the W3C Works XML Path Language (XPath) 2.0 2004-10-29
XPath 2.0 is an expression language that is used to process the value of the data model defined in "XQuery 1.0 and XPath 2.0 Data Model". This data model provides a tree representation of an XML document and an atom value (such as integer, string, and Boolean), and sequence (can contain references to XML document nodes and atom values). The result of an XPath expression can be a node selected from the input document, or an atom value, more generally may be any sequence allowed by the data model. The name of this language comes from its most distinct feature, path expression, which provides a method of layered in a node of an XML tree. XPath 2.0 is an ultra-set of XPath 1.0, which has added support for a richer data type, and uses its type information when it becomes available after the document uses XML Schema authentication. Backward compatibility ensures that almost all XPath 1.0 expressions provide the same results with XPath 2.0; the exception is indicated in "Backwards Compatibility with XPath 1.0".