G Summary of Available Functions (Non-Normative)

G.1 Function Classification

The functions available for use within an XSLT stylesheet can be classified based firstly, on where the function is defined, and secondly, on where it can be used. Specifically, the set of functions available is slightly different for :

The categories are listed in the following table:

Categories of Function, and their Availability
Category Defined where? Available where? Notes
User-defined functions Defined using xsl:function declarations in the stylesheet R, D Functions are private by default; private functions can be referenced only within the package where they are declared (and not in xsl:evaluate expressions).
Constructor functions for built-in types Section 18 Constructor functionsFO40 R, S, D These functions are all in the namespace conventionally associated with the prefix xs. The semantics of a constructor function are identical to the semantics of a cast expression.
Constructor functions for user-defined types Section 18 Constructor functionsFO40 R, D (if schema-aware="yes") This category includes a function for every named user-defined simple type in an imported schema; the function allows the conversion of strings and certain other values to instances of the user-defined type.
Functions defined in XPath 3.0 [Functions and Operators 3.0] R, S, D Includes functions in the namespaces conventionally referred to be the prefixes fn and math.
Additional functions defined in XPath 3.1 (where supported) [Functions and Operators 3.1] R, S, D. This category has an overlap with the set of XSLT-defined-functions. Where a function is defined both in this document and in XPath 3.1, the function is available in an XSLT 3.0 stylesheet whether or not the processor supports XPath 3.1. This category includes functions in namespaces conventionally referred to by the prefixes fn, map, and array.
Functions defined in XSLT 3.0 This specification R, S (see note), D See G.2 List of XSLT-defined functions. There is an overlap with the set of functions defined in XPath 3.1. The functions available in static expressions are: element-available, function-available, type-available, available-system-properties, and system-property.
Extension functions Implementation-defined: see 25.1 Extension Functions. R, S, D Availability is implementation-defined

G.2 List of XSLT-defined functions

This appendix acts as an index of functions defined in this specification, to augment the set of functions defined in [Functions and Operators 4.0].

accumulator-after
See 18.2.7 fn:accumulator-after
accumulator-before
See 18.2.6 fn:accumulator-before
available-system-properties
See 20.4.5 fn:available-system-properties
copy-of
See 18.3 fn:copy-of
current
See 20.4.1 fn:current
current-group
See 14.2.1 fn:current-group
current-grouping-key
See 14.2.2 fn:current-grouping-key
current-merge-group
See 15.6.1 fn:current-merge-group
current-merge-key
See 15.6.2 fn:current-merge-key
current-output-uri
See 26.3.1 fn:current-output-uri
document
See 20.1 fn:document
element-available
See 25.2.2 fn:element-available
function-available
See 25.1.1 fn:function-available
key
See 20.2.2 fn:key
regex-group
See 17.2 fn:regex-group
snapshot
See 18.4 fn:snapshot
stream-available
See 18.1.3 fn:stream-available
system-property
See 20.4.4 fn:system-property
type-available
See 25.1.4 fn:type-available
unparsed-entity-public-id
See 20.4.3 fn:unparsed-entity-public-id
unparsed-entity-uri
See 20.4.2 fn:unparsed-entity-uri