The processor is an implementation of the XSL Transformations
(XSLT) Version 2.0 and the XQuery 1.0 W3C recommendations.
It implements the first editions of the XSLT 2.0, XQuery 1.0, and
XPath 2.0 recommendations, with the levels of conformance described
in this article, as well as all errata published in the proposed edited
recommendations of the second editions of the XSLT 2.0, XQuery 1.0,
XPath 2.0 and ancillary recommendations.
This includes support for the fn:element-with-id function and
the XSLT xsl:supports-namespace-axis system property.
See section 21 of the XSLT 2.0 recommendation and section 5 of
the XQuery 1.0 recommendation for more information about conformance
criteria for processors.
XQuery 1.0 conformance
The processor has
minimal conformance to XQuery 1.0. It also supports the following
optional features of XQuery 1.0:
- full axis feature
- serialization feature
- schema-import feature
- schema-validation feature
- module feature
For a complete list of implementation-defined features, read
XSLT 2.0, XPath 2.0, and XQuery 1.0 implementation-specific behaviors.
- Data Model conformance
- The processor supports normative construction of an instance of
the XQuery/XPath Data Model from an Infoset or from a PSVI. By default,
construction of the instance of the Data Model will be from an Infoset.
If the setValidating method of an XFactory instance is called with
a value of true, any instance of the Data Model that the processor
creates will be constructed from PSVI.
For more information, Performing basic XQuery operations.
The processor
supports both XML 1.0 and XML 1.1.
Extension support
The processor supports
the following additional extensions:
- indent-amount extension attribute of xsl:output
- selection of EXSLT extension functions
- redirect extension element
- xalan:indent-amount extension attribute of xsl:output
- If the value of the indent serialization parameter is yes for
an explicit or an implicit xsl:result-document instruction in an XSLT
stylesheet, the processor will use the value of any indent-amount
extension attribute on the associated xsl:output declaration to determine
the amount by which indentation should be increased for every level
of element nesting in the serialized result.
The indent-amount extension
attribute is in the http://xml.apache.org/xalan namespace.
- EXSLT extension functions
- In order to facilitate migration of XSLT 1.0 stylesheets, the
processor supports many extension functions defined by the EXSLT community
initiative. In many cases, these functions duplicate functions that
have been included in XSLT 2.0, XPath 2.0 and XQuery 1.0.
For more
information about EXSLT, see the EXSLT website.
- EXSLT common functions
- The processor supports only the node-set common extension function.
This function is made redundant by the fact that XSLT 2.0 does not
restrict the operations that can be performed on temporary trees.
The EXSLT common functions are in the namespace http://exslt.org/common.
- EXSLT dates-and-times functions
- The EXSLT dates-and-times functions provide facilities for manipulating
date and time values. Most of these functions are redundant with the
inclusion of the new date and time data types from XML Schema in XSLT
2.0, XQuery 1.0, and XPath 2.0.
The EXSLT dates-and-times functions
are in the namespace http://exslt.org/dates-and-times.
- EXSLT dynamic functions
- The processor supports only the evaluate dynamic extension function.
The EXSLT dynamic functions are in the namespace http://exslt.org/dynamic.
- EXSLT math functions
- The EXSLT math functions provide facilities for several commonly
used mathematical operations. Only the math:abs, math:max, math:min,
and math:highest functions have been made redundant in XSLT 2.0, XQuery
1.0, and XPath 2.0.
The EXSLT math functions are in the namespace
http://exslt.org/math.
- EXSLT set functions
- The EXSLT set functions define facilities for performing set operations
on sequences of nodes. These have been made redundant by the new intersect
and except set operations and the << and >> node comparison
operations introduced in XSLT 2.0, XQuery 1.0, and XPath 2.0.
The
EXSLT set functions are in the namespace http://exslt.org/sets.
- EXSLT string functions
- The EXSLT string functions provide facilities for string manipulation.
The tokenize and split functions have been made redundant by the new
operations for string manipulation in XSLT 2.0, XQuery 1.0, and XPath
2.0, including the fn:tokenize function and the xsl:analyze-string
instruction.
The EXSLT string functions are in the namespace http://exslt.org/strings.
- xalan:redirect extension element
- The redirect extension element provides a means of directing output
from an XSLT stylesheet to more than one output destination. This
extension element is made redundant by the new xsl:result-document
instruction of XSLT 2.0.
The redirect extension element is in the
http://xml.apache.org/xalan namespace.