net.sf.saxon.functions.package-info Maven / Gradle / Ivy
Show all versions of Saxon-HE Show documentation
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2018-2023 Saxonica Limited
// This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
// If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
// This Source Code Form is "Incompatible With Secondary Licenses", as defined by the Mozilla Public License, v. 2.0.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
* This package provides implementations of all the core functions available for use
* in XPath expressions. This includes all the functions defined in the XPath 2.0
* Functions and Operators specification, as well as the additional functions
* defined for use in XSLT. The package also includes Saxon extension functions. Most
* of these are in a single class Extensions
, but some of the more
* complex functions are in their own classes, for example Evaluate
implements
* saxon:evaluate()
.
* There is one class for group of closely-related functions. These all inherit from the class
* net.sf.saxon.expr.Function. The class StandardFunction
is used to map a function
* name to its implementation; it contains tables of information describing the signature of each
* function, so that the type-checking code is completely generic.
* The package also contains machinery for defining user extension functions. A collection
* of functions is represented by a FunctionLibrary
object. There are several
* standard function libraries available, covering core functions, Saxon extension functions
* constructor functions, and user extension functions: each category is covered by a subclass
* of FunctionLibrary
, and there is also a FunctionLibraryList
that
* represents the total collection of functions in these individual libraries. The
* JavaExtensionLibrary
contains the logic for binding Java extension functions
* given their name and arity and the types of their arguments. The class ExtensionFunctionCall
* contains the run-time logic for converting XPath values to the required Java types, and for converting
* the result back to an XPath value.
* These classes, although public, will not normally be used directly by user-written
* Java applications. There are a few exceptions, such as ResolveURI
which deliberately
* expose functionality equivalent to the XPath function in a static method.
*/
package net.sf.saxon.functions;