Datatypes
XPath and XSLT define five datatypes, listed here. The result tree fragment type is defined by XSLT and is specific to transformations; the other four are defined by XPath and are generic to any technology that uses XPath. The four XPath datatypes are tersely defined in Section 1 of the XPath specification; section 11.1 of the XSLT specification defines result tree fragments.

node-set
  A set of nodes. The set can be empty, or it can contain any number of nodes.

boolean
  The value true or false . Be aware that the strings true and false have no special meaning or value in XPath. If you need to use the boolean values themselves, use the functions true() and false() .

number
  A floating-point number. All numbers in XPath and XSLT are implemented as floating-point numbers; the integer or int datatype does not exist in XPath and XSLT. To be specific, all numbers are implemented as IEEE 754 floating-point numbers, the same standard used by the Java float and double primitive types. In addition to ordinary numbers, there are five special values for numbers: positive and negative infinity, positive and negative zero, and NaN , the special symbol for anything that is not a number.

string
  Zero or more characters, as defined in the XML specification.

result tree fragment
  A temporary tree. You can create one with an < xsl:variable > element that uses content (instead of the select attribute) to initialize its value. A result tree fragment can be copied to the result tree with the < xsl:copy-of > element. It may also be converted to a string with the < xsl:value-of > element.