1 Introduction
1.1 XQuery 1.0 and XPath 2.0 Functions
1.2 XSL Transformations (XSLT) 2.0 Functions
This document describes the namespace http://www.w3.org/2005/04/xpath-functions of the XQuery 1.0 and XPath 2.0 Functions and Operators and XSL Transformations (XSLT) Version 2.0 specifications (April 2005 versions).
Please note that this namespace may change without notice. It is likely that updated specifications will use a different namespace than this one. For updated information, please refer to the latest version of the XQuery 1.0 and XPath 2.0 Functions and Operators and/or XSL Transformations (XSLT) Version 2.0 specifications.
Note also that XQuery 1.0 and XPath 2.0 Functions and Operators and XSL Transformations (XSLT) Version 2.0 are the only specifications which may amend this namespace.
This section lists all of the functions defined in the XQuery 1.0 and XPath 2.0 Functions and Operators specification. Each function and operator is uniquely identified with a URI of the form: “http://www.w3.org/TR/2005/WD-xpath-functions-20050404/#name” where name is the name of a function or operator, such as “max”: http://www.w3.org/TR/2005/WD-xpath-functions-20050404/#max.
For convenience, a very brief, non-normative summary of each function is provided. For details, follow the link on the “Summary:” introductory text below each function.
fn:abs($arg as numeric?) as numeric?Summary: Returns the absolute value of $arg. If $arg is negative returns -$arg otherwise returns $arg. If type of $arg is one of the four numeric types xs:float, xs:double, xs:decimal or xs:integer the type of the result is the same as the type of $arg. If the type of $arg is a type
derived from one of the numeric types, the result is an instance of the base numeric type.
fn:adjust-date-to-timezone($arg as xs:date?) as xs:date?fn:adjust-date-to-timezone( |
$arg |
as xs:date?, |
$timezone |
as xdt:dayTimeDuration?) as xs:date? |
Summary: Adjusts an xs:date value to a specific timezone, or to no timezone at all. If $timezone is the empty sequence, returns an xs:date without a timezone. Otherwise, returns an xs:date with a timezone. For purposes of timezone adjustment, an xs:date is treated as an xs:dateTime with time 00:00:00.
fn:adjust-dateTime-to-timezone($arg as xs:dateTime?) as xs:dateTime?fn:adjust-dateTime-to-timezone( |
$arg |
as xs:dateTime?, |
$timezone |
as xdt:dayTimeDuration?) as xs:dateTime? |
Summary: Adjusts an xs:dateTime value to a specific timezone, or to no timezone at all. If $timezone is the empty sequence, returns an xs:dateTime without a timezone. Otherwise, returns an xs:dateTime with a timezone.
fn:adjust-time-to-timezone($arg as xs:time?) as xs:time?fn:adjust-time-to-timezone( |
$arg |
as xs:time?, |
$timezone |
as xdt:dayTimeDuration?) as xs:time? |
Summary: Returns the xdt:dayTimeDuration that corresponds to the difference between the normalized value of $arg1 and the normalized value of $arg2. If either $arg1 or $arg2 do not contain an explicit timezone then, for the purpose of the operation, the implicit timezone provided by the dynamic context (See Section C.2 Dynamic Context ComponentsXP.) is assumed to be present as part of the value.
fn:avg($arg as xdt:anyAtomicType*) as xdt:anyAtomicType?Summary: Selects an item from the input sequence $arg whose value is greater than or equal to the value of every other item in the input sequence. If there are two or more such items, then the specific item whose value is returned is implementation dependent.
fn:base-uri() as xs:anyURI?fn:base-uri($arg as node()?) as xs:anyURI?Summary: Returns the value of the base-uri property for $arg as defined by the accessor function dm:base-uri() for that kind of node in Section 5.2 base-uri AccessorDM. If $arg is not specified, returns the value of the base-uri property of the context item (.) with the above
semantics. If the context item is not a node, an error is raised:[err:XPTY0006]XP If the context item is undefined, an error is raised: [err:FONSNC0001].
fn:boolean($arg as item()*) as xs:booleanSummary: Computes the effective boolean value of the sequence $arg. See Section 2.4.3 Effective Boolean ValueXP
fn:ceiling($arg as numeric?) as numeric?Summary: Returns the smallest (closest to negative infinity) number with no fractional part that is not less than the value of $arg. If type of $arg is one of the four numeric types xs:float, xs:double, xs:decimal or xs:integer the type of the result is the same as the type of $arg. If the type of $arg is a type derived
from one of the numeric types, the result is an instance of the base numeric type.
fn:codepoint-equal( |
$comparand1 |
as xs:string?, |
$comparand2 |
as xs:string?) as xs:boolean? |
Summary: Returns true or false depending on whether the value of $comparand1 is equal to the value of $comparand2, according to the Unicode code point collation (http://www.w3.org/2005/04/xpath-functions/collation/codepoint).
fn:codepoints-to-string($arg as xs:integer*) as xs:stringSummary: Creates an xs:string from a sequence of [The Unicode Standard] code points. Returns the zero-length string if $arg is the empty sequence. If any of the code points in $arg is not a legal XML character, an error is raised [err:FONSCH0001].
fn:collection() as node()*fn:collection($arg as xs:string?) as node()*Summary: This function takes an xs:string as argument and returns a sequence of nodes obtained by interpreting $arg as an xs:anyURI and resolving it according to the mapping specified in Available collections described in Section C.2 Dynamic Context ComponentsXP. If
Available collections provides a mapping from this string to a sequence of nodes, the function returns that sequence. If Available collections maps the string to an empty sequence, then the function returns an empty sequence. If Available collections provides no mapping for the string, an error is raised [err:FONSDC0004]. If $arg is not specified, the function returns the sequence of the nodes in the default collection in the dynamic context. See Section C.2 Dynamic Context ComponentsXP. If the value of the default collection is undefined an error is raised [err:FONSDC0002].
fn:compare($comparand1 as xs:string?, $comparand2 as xs:string?) as xs:integer?fn:compare( |
$comparand1 |
as xs:string?, |
$comparand2 |
as xs:string?, |
|
$collation |
as xs:string) as xs:integer? |
Summary: Returns -1, 0, or 1, depending on whether the value of the $comparand1 is respectively less than, equal to, or greater than the value of $comparand2, according to the rules of the collation that is used.
fn:concat( |
$arg1 |
as xdt:anyAtomicType?, |
$arg2 |
as xdt:anyAtomicType?, |
|
| ... | ) as xs:string |
Summary: Accepts two or more xdt:anyAtomicType arguments and casts them to xs:string. Returns the xs:string that is the concatenation of the values of its arguments after conversion. If any of the arguments is the empty sequence, the argument is treated as the zero-length string.
fn:contains($arg1 as xs:string?, $arg2 as xs:string?) as xs:booleanfn:contains( |
$arg1 |
as xs:string?, |
$arg2 |
as xs:string?, |
|
$collation |
as xs:string) as xs:boolean |
Summary: Returns an xs:boolean indicating whether or not the value of $arg1 contains (at the beginning, at the end, or anywhere within) at least one sequence of collation units that provides a minimal match to the collation units in the value of $arg2, according to the collation that is used.
fn:count($arg as item()*) as xs:integerSummary: Returns the number of items in the value of $arg.
fn:current-date() as xs:dateSummary: Returns xs:date(fn:current-dateTime()). This is an xs:date (with timezone) that is current at some time during the evaluation of a query or transformation in which fn:current-date() is executed. This function is stable. The precise instant during the query or transformation represented by the value of fn:current-date() is implementation dependent.
fn:current-dateTime() as xs:dateTimeSummary: Returns the current dateTime (with timezone) from the dynamic context. (See Section C.2 Dynamic Context ComponentsXP.) This is an xs:dateTime that is current at some time during the evaluation of a query or transformation in which fn:current-dateTime() is executed. This
function is stable. The precise instant during the query or transformation represented by the value of fn:current-dateTime() is implementation dependent.
fn:current-time() as xs:timeSummary: Returns xs:time(fn:current-dateTime()). This is an xs:time (with timezone) that is current at some time during the evaluation of a query or transformation in which fn:current-time() is executed. This function is stable. The precise instant during the query or transformation represented by the value of fn:current-time() is implementation dependent.
fn:data($arg as item()*) as xdt:anyAtomicType*Summary: fn:data takes a sequence of items and returns a sequence of atomic values.
fn:dateTime($arg1 as xs:date, $arg2 as xs:time) as xs:dateTimeSummary: Backs up the "+" operator and returns the arithmetic sum of its operands: ( $arg1 + $arg2).
fn:day-from-date($arg as xs:date?) as xs:integer?Summary: Returns an xs:integer between 1 and 31, both inclusive, representing the day component in the localized value of $arg.
fn:day-from-dateTime($arg as xs:dateTime?) as xs:integer?Summary: Returns an xs:integer between 1 and 31, both inclusive, representing the day component in the localized value of $arg.
fn:days-from-duration($arg as xdt:dayTimeDuration?) as xs:integer?Summary: Returns an xs:integer representing the days component in the canonical lexical representation of the value of $arg. The result may be negative.
fn:deep-equal($parameter1 as item()*, $parameter2 as item()*) as xs:booleanfn:deep-equal( |
$parameter1 |
as item()*, |
$parameter2 |
as item()*, |
|
$collation |
as string) as xs:boolean |
Summary: Constructs a sequence containing every node that occurs in the values of either $parameter1 or $parameter2, eliminating duplicate nodes. Nodes are returned in document order. Two nodes are duplicates if they are op:is-same-node().
fn:default-collation() as xs:stringSummary: Returns the value of the default collation property from the static context. Components of the static context are discussed in Section C.1 Static Context ComponentsXP.
fn:distinct-values($arg as xdt:anyAtomicType*) as xdt:anyAtomicType*fn:distinct-values( |
$arg |
as xdt:anyAtomicType*, |
$collation |
as xs:string) as xdt:anyAtomicType* |
Summary: Returns the sequence that results from removing from $arg all but one of a set of values that are eq to one other. Values that cannot be compared, i.e. the eq operator is not defined for their types, are considered to be distinct. Values of type xdt:untypedAtomic are compared as if they were of type xs:string. The order in which the sequence
of values is returned is implementation dependent.
fn:doc($uri as xs:string?) as document-node()?Summary: Retrieves a document using an xs:anyURI, which may include a fragment identifier, supplied as an xs:string. If $uri is not a valid xs:anyURI, an error is raised [err:FONSDC0005]. If it is a relative URI Reference, it is resolved relative to the value of the base URI property from the static context. The resulting absolute URI Reference is promoted to an
xs:string. If the Available documents discussed in Section 2.1.2 Dynamic ContextXP provides a mapping from this string to a document node, the function returns that document node. If the Available documents maps the string to an empty sequence, then the function returns an empty sequence. If the Available documents provides no mapping for the string, an error is raised [err:FONSDC0005].
fn:doc-available($uri as xs:string?) as xs:booleanSummary: If fn:doc($uri) returns a document node, this function returns true. If $uri is not a valid xs:anyURI, an error is raised [err:FONSDC0005]. Otherwise, this function returns false.
fn:document-uri($arg as node()?) as xs:anyURI?Summary: Returns the value of the document-uri property for $arg as defined by the dm:document-uri accessor function defined in Section 6.1.2 AccessorsDM.
fn:empty($arg as item()*) as xs:booleanSummary: If the value of $arg is the empty sequence, the function returns true; otherwise, the function returns false.
fn:ends-with($arg1 as xs:string?, $arg2 as xs:string?) as xs:booleanfn:ends-with( |
$arg1 |
as xs:string?, |
$arg2 |
as xs:string?, |
|
$collation |
as xs:string) as xs:boolean |
Summary: Returns an xs:boolean indicating whether or not the value of $arg1 ends with a sequence of collation units that provides a minimal match to the collation units of $arg2 according to the collation that is used.
fn:error() as nonefn:error($error as xs:QName) as nonefn:error($error as xs:QName?, $description as xs:string) as nonefn:error( |
$error |
as xs:QName?, |
$description |
as xs:string, |
|
$error-object |
as item()*) as none |
Summary: The fn:error function raises an error. While this function never returns a value, an error is returned to the external processing environment as an xs:anyURI or an xs:QName. The error xs:anyURI is derived from the error xs:QName. An error xs:QName with namespace URI NS and local part LP will be returned as the xs:anyURI NS#LP.
The method by which the xs:anyURI or xs:QName is returned to the external processing environment is implementation dependent.
fn:escape-uri( |
$uri-part |
as xs:string?, |
$escape-reserved |
as xs:boolean) as xs:string |
Summary: This function applies the URI escaping rules defined in section 2 of [RFC 3986] with one exception, to the string supplied as $uri-part, which typically represents all or part of a URI. The semantics of this function are aligned with the URI escaping semantics in [XML Linking Language (XLink) Version 1.0]. The effect of the function is to escape a set of identified characters in the string. Each
such character is replaced in the string by an escape sequence, which is formed by encoding the character as a sequence of octets in UTF-8, and then representing each of these octets in the form %HH, where HH is the hexadecimal representation of the octet.
fn:exactly-one($arg as item()*) as item()Summary: Returns $arg if it contains exactly one item. Otherwise, raises an error [err:FONSRG0005].
fn:exists($arg as item()*) as xs:booleanSummary: If the value of $arg is not the empty sequence, the function returns true; otherwise, the function returns false.
fn:false() as xs:booleanSummary: Returns the xs:boolean value false. Equivalent to xs:boolean("0").
fn:floor($arg as numeric?) as numeric?Summary: Returns the largest (closest to positive infinity) number with no fractional part that is not greater than the value of $arg. If type of $arg is one of the four numeric types xs:float, xs:double, xs:decimal or xs:integer the type of the result is the same as the type of $arg. If the type of $arg is a type derived
from one of the numeric types, the result is an instance of the base numeric type.
fn:hours-from-dateTime($arg as xs:dateTime?) as xs:integer?Summary: Returns an xs:integer between 0 and 23, both inclusive, representing the hours component in the localized value of $arg.
fn:hours-from-duration($arg as xdt:dayTimeDuration?) as xs:integer?Summary: Returns an xs:integer representing the hours component in the canonical lexical representation of the value of $arg. The result may be negative.
fn:hours-from-time($arg as xs:time?) as xs:integer?Summary: Returns an xs:integer between 0 and 23, both inclusive, representing the value of the hours component in the localized value of $arg.
fn:id($arg as xs:string*) as element()*fn:id($arg as xs:string*, $node as node()) as element()*Summary: Retrieves a document using an xs:anyURI, which may include a fragment identifier, supplied as an xs:string. If $uri is not a valid xs:anyURI, an error is raised [err:FONSDC0005]. If it is a relative URI Reference, it is resolved relative to the value of the base URI property from the static context. The resulting absolute URI Reference is promoted to an
xs:string. If the Available documents discussed in Section 2.1.2 Dynamic ContextXP provides a mapping from this string to a document node, the function returns that document node. If the Available documents maps the string to an empty sequence, then the function returns an empty sequence. If the Available documents provides no mapping for the string, an error is raised [err:FONSDC0005].
fn:idref($arg as xs:string*) as node()*fn:idref($arg as xs:string*, $node as node()) as node()*Summary: Retrieves a document using an xs:anyURI, which may include a fragment identifier, supplied as an xs:string. If $uri is not a valid xs:anyURI, an error is raised [err:FONSDC0005]. If it is a relative URI Reference, it is resolved relative to the value of the base URI property from the static context. The resulting absolute URI Reference is promoted to an
xs:string. If the Available documents discussed in Section 2.1.2 Dynamic ContextXP provides a mapping from this string to a document node, the function returns that document node. If the Available documents maps the string to an empty sequence, then the function returns an empty sequence. If the Available documents provides no mapping for the string, an error is raised [err:FONSDC0005].
fn:implicit-timezone() as xdt:dayTimeDurationSummary: Returns the value of the implicit timezone property from the dynamic context. Components of the dynamic context are discussed in Section C.2 Dynamic Context ComponentsXP.
fn:in-scope-prefixes($element as element()) as xs:string*Summary: Returns the prefixes of the in-scope namespaces for $element. For namespaces that have a prefix, it returns the prefix as an xs:NCName. For the default namespace, which has no prefix, it returns the zero-length string.
fn:index-of( |
$seqParam |
as xdt:anyAtomicType*, |
$srchParam |
as xdt:anyAtomicType) as xs:integer* |
fn:index-of( |
$seqParam |
as xdt:anyAtomicType*, |
$srchParam |
as xdt:anyAtomicType, |
|
$collation |
as xs:string) as xs:integer* |
Summary: Returns a sequence of positive integers giving the positions within the sequence $seqParam of items that are equal to $srchParam.
fn:insert-before( |
$target |
as item()*, |
$position |
as xs:integer, |
|
$inserts |
as item()*) as item()* |
Summary: Returns a new sequence constructed from the value of $target with the value of $inserts inserted at the position specified by the value of $position. (The value of $target is not affected by the sequence construction.)
fn:lang($testlang as xs:string?) as xs:booleanfn:lang($testlang as xs:string?, $node as node()) as xs:booleanSummary: This function tests whether the language of $node, or the context node if the second argument is omitted, as specified by xml:lang attributes is the same as, or is a sublanguage of, the language specified by $testlang. The language of the argument node, or the context node if the second argument is omitted, is determined by the value of the xml:lang attribute on the
node, or, if the node has no such attribute, by the value of the xml:lang attribute on the nearest ancestor of the node that has an xml:lang attribute. If there is no such ancestor, then the function returns false
fn:last() as xs:integerSummary: Returns the context size from the dynamic context. (See Section C.2 Dynamic Context ComponentsXP.) If the context item is undefined, an error is raised [err:FONSNC0001].
fn:local-name() as xs:stringfn:local-name($arg as node()?) as xs:stringSummary: Returns the local part of the name of $arg as an xs:string that will either be the zero-length string or will have the lexical form of an xs:NCName.
fn:local-name-from-QName($arg as xs:QName?) as xs:NCNAME?Summary: Returns an xs:NCName representing the local part of $arg. If $arg is the empty sequence, returns the empty sequence.
fn:lower-case($arg as xs:string?) as xs:stringSummary: returns the value of $arg after translating every character to its lower-case correspondent as defined in the Unicode standard [The Unicode Standard]. Every character that does not have an lower-case correspondent is included in the returned value in its original form.
fn:matches($input as xs:string?, $pattern as xs:string) as xs:booleanfn:matches( |
$input |
as xs:string?, |
$pattern |
as xs:string, |
|
$flags |
as xs:string) as xs:boolean |
Summary: The function returns true if $input matches the regular expression supplied as $pattern as influenced by the value of $flags, if present; otherwise, it returns false.
fn:max($arg as xdt:anyAtomicType*) as xdt:anyAtomicType?fn:max($arg as xdt:anyAtomicType*, $collation as string) as xdt:anyAtomicType?Summary: Selects an item from the input sequence $arg whose value is greater than or equal to the value of every other item in the input sequence. If there are two or more such items, then the specific item whose value is returned is implementation dependent.
fn:min($arg as xdt:anyAtomicType*) as xdt:anyAtomicType?fn:min($arg as xdt:anyAtomicType*, $collation as string) as xdt:anyAtomicType?Summary: selects an item from the input sequence $arg whose value is less than or equal to the value of every other item in the input sequence. If there are two or more such items, then the specific item whose value is returned is implementation dependent.
fn:minutes-from-dateTime($arg as xs:dateTime?) as xs:integer?Summary: Returns an xs:integer value between 0 and 59, both inclusive, representing the minute component in the localized value of $arg.
fn:minutes-from-duration($arg as xdt:dayTimeDuration?) as xs:integer?Summary: Returns an xs:integer representing the minutes component in the canonical lexical representation of the value of $arg. The result may be negative.
fn:minutes-from-time($arg as xs:time?) as xs:integer?Summary: Returns an xs:integer value between 0 to 59, both inclusive, representing the value of the minutes component in the localized value of $arg.
fn:month-from-date($arg as xs:date?) as xs:integer?Summary: Returns an xs:integer between 1 and 12, both inclusive, representing the month component in the localized value of $arg.
fn:month-from-dateTime($arg as xs:dateTime?) as xs:integer?Summary: Returns an xs:integer between 1 and 12, both inclusive, representing the month component in the localized value of $arg.
fn:months-from-duration($arg as xdt:yearMonthDuration?) as xs:integer?Summary: Returns an xs:integer representing the months component in the canonical lexical representation of the value of $arg. The result may be negative.
fn:name() as xs:stringfn:name($arg as node()?) as xs:stringSummary: Returns the name of a node, as an xs:string that is either the zero-length string, or has the lexical form of an xs:QName.
fn:namespace-uri() as xs:anyURIfn:namespace-uri($arg as node()?) as xs:anyURISummary: Returns the namespace URI of the xs:QName of $arg.
fn:namespace-uri-for-prefix( |
$prefix |
as xs:string, |
$element |
as element()) as xs:anyURI? |
Summary: Returns the namespace URI of one of the in-scope namespaces for $element, identified by its namespace prefix.
fn:namespace-uri-from-QName($arg as xs:QName?) as xs:anyURI?Summary: Returns the namespace URI for $arg as an xs:string. If $arg is the empty sequence, the empty sequence is returned. If $arg is in no namespace, the zero-length string is returned.
fn:nilled($arg as node()?) as xs:boolean?Summary: Returns an xs:boolean indicating whether the argument node is "nilled". If the argument is not an element node, returns the empty sequence. If the argument is the empty sequence, returns the empty sequence.
fn:node-name($arg as node()?) as xs:QName?Summary: Returns an expanded-QName for node kinds that can have names. For other kinds of nodes it returns the empty sequence. If $arg is the empty sequence, the empty sequence is returned.
fn:normalize-space() as xs:stringfn:normalize-space($arg as xs:string?) as xs:stringSummary: Returns the value of $arg with whitespace normalized by stripping leading and trailing whitespace and replacing sequences of one or more than one whitespace character with a single space, #x20.
fn:normalize-unicode($arg as xs:string?) as xs:stringfn:normalize-unicode( |
$arg |
as xs:string?, |
$normalizationForm |
as xs:string) as xs:string |
Summary: Returns the value of $arg normalized according to the normalization criteria for a normalization form identified by the value of $normalizationForm. The effective value of the $normalizationForm is computed by removing leading and trailing blanks, if present, and converting to upper case.
fn:not($arg as item()*) as xs:booleanSummary: $arg is first reduced to an effective boolean value by applying the fn:boolean() function. Returns true if the effective boolean value is false, and false if the effective boolean value is true.
fn:number() as xs:doublefn:number($arg as xdt:anyAtomicType?) as xs:doubleSummary: Returns the value indicated by $arg or, if $arg is not specified, the context item after atomization, converted to an xs:double. If $arg is the empty sequence or if $arg or the context item cannot be converted to an xs:double, the xs:double value NaN is returned. If the context item is undefined an error is
raised: [err:FONSNC0001].
fn:one-or-more($arg as item()*) as item()+Summary: Returns $arg if it contains one or more items. Otherwise, raises an error [err:FONSRG0004].
fn:position() as xs:integerSummary: Returns the context position from the dynamic context. (See Section C.2 Dynamic Context ComponentsXP.) If the context item is undefined, an error is raised [err:FONSNC0001].
fn:prefix-from-QName($arg as xs:QName?) as xs:NCNAME?Summary: Returns an xs:NCName representing the prefix of $arg. If $arg is the empty sequence, returns the empty sequence.
fn:QName($paramURI as xs:string?, $paramQName as xs:string) as xs:QNameSummary: Returns an xs:QName with the namespace URI given in $paramURI. If $paramURI is the empty string or the empty sequence, it represents "no namespace". The prefix (or absence of a prefix) in $paramQName is retained in the returned xs:QName value. The local name in the result is taken from the local part of $paramQName.
fn:remove($target as item()*, $position as xs:integer) as item()*Summary: Returns a new sequence constructed from the value of $target with the item at the position specified by the value of $position removed.
fn:replace( |
$input |
as xs:string?, |
$pattern |
as xs:string, |
|
$replacement |
as xs:string) as xs:string |
fn:replace( |
$input |
as xs:string?, |
$pattern |
as xs:string, |
|
$replacement |
as xs:string, |
|
$flags |
as xs:string) as xs:string |
Summary: The function returns the xs:string that is obtained by replacing each non-overlapping substring of $input that matches the given $pattern with an occurrence of the $replacement string.
fn:resolve-QName($qname as xs:string?, $element as element()) as xs:QName?Summary: Returns an xs:QName value (that is, an expanded-QName) by taking an xs:string that has the lexical form of an xs:QName (a string in the form "prefix:local-name" or "local-name") and resolving it using the in-scope namespaces for a given element.
fn:resolve-uri($relative as xs:string?) as xs:anyURI?fn:resolve-uri($relative as xs:string?, $base as xs:string) as xs:anyURI?Summary: The second form of this function expects $base to be an absolute URI and $relative to be an absolute or a relative URI reference. If $relative is a relative URI reference, it is resolved against $base, using an algorithm such as the ones described in [RFC 2396] or [RFC 3986], and the resulting absolute URI reference is returned. An error may be raised
[err:FONSRG0009] in the resolution process. If $relative is an absolute URI reference, it is returned unchanged. The first form of this function resolves $relative against the value of the base-uri property from the static context. If the base-uri property is not initialized in the static context an error is raised [err:FONSNS0005].
fn:reverse($arg as item()*) as item()*Summary: Reverses the order of items in a sequence. If $arg is the empty sequence, the empty sequence is returned.
fn:root() as node()fn:root($arg as node()?) as node()?Summary: Returns the root of the tree to which $arg belongs. This will usually, but not necessarily, be a document node.
fn:round($arg as numeric?) as numeric?Summary: Returns the number with no fractional part that is closest to the argument. If there are two such numbers, then the one that is closest to positive infinity is returned. If type of $arg is one of the four numeric types xs:float, xs:double, xs:decimal or xs:integer the type of the result is the same as the type of $arg. If the type of
$arg is a type derived from one of the numeric types, the result is an instance of the base numeric type.
fn:round-half-to-even($arg as numeric?) as numeric?fn:round-half-to-even($arg as numeric?, $precision as xs:integer) as numeric?Summary: The value returned is the nearest (that is, numerically closest) numeric to $arg that is a multiple of ten to the power of minus $precision. If two such values are equally near (e.g. if the fractional part in $arg is exactly .500...), returns the one whose least significant digit is even. If type of $arg is one of the four numeric types
xs:float, xs:double, xs:decimal or xs:integer the type of the result is the same as the type of $arg. If the type of $arg is a type derived from one of the numeric types, the result is an instance of the base numeric type.
fn:seconds-from-dateTime($arg as xs:dateTime?) as xs:decimal?Summary: Returns an xs:decimal value between 0 and 60.999..., both inclusive representing the seconds and fractional seconds in the localized value of $arg. Note that the value can be greater than 60 seconds to accommodate occasional leap seconds used to keep human time synchronized with the rotation of the planet.
fn:seconds-from-duration($arg as xdt:dayTimeDuration?) as xs:decimal?Summary: Returns an xs:decimal representing the seconds component in the canonical lexical representation of the value of $arg. The result may be negative.
fn:seconds-from-time($arg as xs:time?) as xs:decimal?Summary: Returns an xs:decimal value between 0 and 60.999..., both inclusive, representing the seconds and fractional seconds in the localized value of $arg. Note that the value can be greater than 60 seconds to accommodate occasional leap seconds used to keep human time synchronized with the rotation of the planet.
fn:starts-with($arg1 as xs:string?, $arg2 as xs:string?) as xs:booleanfn:starts-with( |
$arg1 |
as xs:string?, |
$arg2 |
as xs:string?, |
|
$collation |
as xs:string) as xs:boolean |
Summary: Returns an xs:boolean indicating whether or not the value of $arg1 starts with a sequence of collation units that provides a minimal match to the collation units of $arg2 according to the collation that is used.
fn:static-base-uri() as xs:anyURI?Summary: Returns the value of the base-uri property from the static context. If the base-uri property is undefined, the empty sequence is returned. Components of the static context are discussed in Section C.1 Static Context ComponentsXP .
fn:string() as xs:stringfn:string($arg as item()?) as xs:stringSummary: Returns the value of $arg represented as a xs:string. If no argument is supplied, this function returns the string value of the context item (.).
fn:string-join($arg1 as xs:string*, $arg2 as xs:string) as xs:stringSummary: Returns a xs:string created by concatenating the members of the $arg1 sequence using $arg2 as a separator. If the value of $arg2 is the zero-length string, then the members of $arg1 are concatenated without a separator.
fn:string-length() as xs:integerfn:string-length($arg as xs:string?) as xs:integerSummary: Returns an xs:integer equal to the length in characters of the value of $arg.
fn:string-to-codepoints($arg as xs:string?) as xs:integer*Summary: Returns the sequence of [The Unicode Standard] code points that constitute an xs:string. If $arg is a zero-length string or the empty sequence, the empty sequence is returned.
fn:subsequence($sourceSeq as item()*, $startingLoc as xs:double) as item()*fn:subsequence( |
$sourceSeq |
as item()*, |
$startingLoc |
as xs:double, |
|
$length |
as xs:double) as item()* |
Summary: Returns the contiguous sequence of items in the value of $sourceSeq beginning at the position indicated by the value of $startingLoc and continuing for the number of items indicated by the value of $length. More specifically, returns the items in $sourceString whose position $p obeys:
fn:substring( |
$sourceString |
as xs:string?, |
$startingLoc |
as xs:double) as xs:string |
fn:substring( |
$sourceString |
as xs:string?, |
$startingLoc |
as xs:double, |
|
$length |
as xs:double) as xs:string |
Summary: Returns the portion of the value of $sourceString beginning at the position indicated by the value of $startingLoc and continuing for the number of characters indicated by the value of $length. The characters returned do not extend beyond $sourceString. If $startingLoc is zero or negative, only those characters in positions greater than zero are
returned.
fn:substring-after($arg1 as xs:string?, $arg2 as xs:string?) as xs:stringfn:substring-after( |
$arg1 |
as xs:string?, |
$arg2 |
as xs:string?, |
|
$collation |
as xs:string) as xs:string |
Summary: Returns the substring of the value of $arg1 that follows in the value of $arg1 the first occurrence of a sequence of collation units that provides a minimal match to the collation units of $arg2 according to the collation that is used.
fn:substring-before($arg1 as xs:string?, $arg2 as xs:string?) as xs:stringfn:substring-before( |
$arg1 |
as xs:string?, |
$arg2 |
as xs:string?, |
|
$collation |
as xs:string) as xs:string |
Summary: Returns the substring of the value of $arg1 that precedes in the value of $arg1 the first occurrence of a sequence of collation units that provides a minimal match to the collation units of $arg2 according to the collation that is used.
fn:sum($arg as xdt:anyAtomicType*) as xdt:anyAtomicTypefn:sum( |
$arg |
as xdt:anyAtomicType*, |
$zero |
as xdt:anyAtomicType?) as xdt:anyAtomicType? |
Summary: Returns a value obtained by adding together the values in $arg. If $zero is not specified, then the value returned for an empty sequence is the xs:integer value 0. If $zero is specified, then the value returned for an empty sequence is $zero..
fn:timezone-from-date($arg as xs:date?) as xdt:dayTimeDuration?Summary: Returns the timezone component of $arg if any. If $arg has a timezone component, then the result is an xdt:dayTimeDuration that indicates deviation from UTC; its value may range from +14:00 to -14:00 hours, both inclusive. Otherwise, the result is the empty sequence.
fn:timezone-from-dateTime($arg as xs:dateTime?) as xdt:dayTimeDuration?Summary: Returns the timezone component of $arg if any. If $arg has a timezone component, then the result is an xdt:dayTimeDuration that indicates deviation from UTC; its value may range from +14:00 to -14:00 hours, both inclusive. Otherwise, the result is the empty sequence.
fn:timezone-from-time($arg as xs:time?) as xdt:dayTimeDuration?Summary: Returns the timezone component of $arg if any. If $arg has a timezone component, then the result is an xdt:dayTimeDuration that indicates deviation from UTC; its value may range from +14:00 to -14:00 hours, both inclusive. Otherwise, the result is the empty sequence.
fn:tokenize($input as xs:string?, $pattern as xs:string) as xs:string?fn:tokenize( |
$input |
as xs:string?, |
$pattern |
as xs:string, |
|
$flags |
as xs:string) as xs:string? |
Summary: This function breaks the $input string into a sequence of strings, treating any substring that matches $pattern as a separator. The separators themselves are not returned.
fn:trace($value as item()*, $label as xs:string) as item()*Summary: Backs up the "+" operator and returns the arithmetic sum of its operands: ( $arg1 + $arg2).
fn:translate( |
$arg |
as xs:string?, |
$mapString |
as xs:string, |
|
$transString |
as xs:string) as xs:string |
Summary: Returns the value of $arg modified so that every character in the value of $arg that occurs at some position N in the value of $mapString has been replaced by the character that occurs at position N in the value of $transString.
fn:true() as xs:booleanSummary: Returns the xs:boolean value true. Equivalent to xs:boolean("1").
fn:unordered($sourceSeq as item()*) as item()*Summary: Returns the items of $sourceSeq in an implementation dependent order.
fn:upper-case($arg as xs:string?) as xs:stringSummary: Returns the value of $arg after translating every character to its upper-case correspondent as defined in the Unicode standard [The Unicode Standard]. Every character that does not have an upper-case correspondent is included in the returned value in its original form..
fn:year-from-date($arg as xs:date?) as xs:integer?Summary: Returns an xs:integer representing the year in the localized value of $arg. The value may be negative.
fn:year-from-dateTime($arg as xs:dateTime?) as xs:integer?Summary: Returns an xs:integer representing the year component in the localized value of $arg. The result may be negative.
fn:years-from-duration($arg as xdt:yearMonthDuration?) as xs:integer?Summary: Returns an xs:integer representing the years component in the canonical lexical representation of the value of $arg. The result may be negative.
fn:zero-or-one($arg as item()*) as item()?Summary: Returns $arg if it contains zero or one items. Otherwise, raises an error [err:FONSRG0003].
This section lists all of the functions defined in the XSL Transformations (XSLT) Version 2.0 specification. Each function and operator is uniquely identified with a URI of the form: “http://www.w3.org/TR/2005/WD-xpath-functions-20050404/#name” where name is the name of a function or operator, such as “system-property”: http://www.w3.org/TR/2005/WD-xpath-functions-20050404/#system-property.
For convenience, a very brief, non-normative summary of each function is provided. For details, follow the link on the “Summary:” introductory text below each function.
fn:current() as item()Summary: The current function, used within an XPath expression, returns the item that was the context item at the point where the expression was invoked from the XSLT stylesheet. This is referred to as the current item. For an outermost expression (an expression not occurring within another expression), the current item is always the same as the context item. Thus,
fn:current-group() as item()Summary: [Definition] The evaluation context for XPath expressions includes a component called the current group, which is a sequence. The current group is the collection of related items that are processed collectively in one iteration of the xsl:for-each-group element.
fn:current-grouping-key() as xdt:anyAtomicType?Summary: [Definition] The evaluation context for XPath expressions includes a component called the current grouping key, which is an atomic value. The current grouping key is a value shared in common by all the items within the current group.
fn:document($uri-sequence as item()?) as node()fn:document($uri-sequence as item()?, $base-node as node()) as node()Summary: The document function allows access to XML documents identified by a URI.
fn:element-available($element-name as xs:string) as xs:booleanSummary: The value of the $element-name argument must be a string containing a QName. The QName is expanded into an expanded-QName using the namespace declarations in scope for the expression. If there is a default namespace in scope, then it is used to expand an unprefixed QName. The element-available function returns true if and only if the expanded-QName is the name of
an instruction. If the expanded-QName has a namespace URI equal to the XSLT namespace URI, then it refers to an element defined by XSLT. Otherwise, it refers to an extension instruction. If the expanded-QName has a null namespace URI, the element-available function will return false.
fn:format-date( |
$value |
as xs:date?, |
$picture |
as xs:string, |
|
$language |
as xs:string?, |
|
$calendar |
as xs:string?, |
|
$country |
as xs:string?) as xs:string? |
fn:format-date($value as xs:date?, $picture as xs:string) as xs:string?Summary: The format-dateTime, format-date, and format-time functions format $value as a string using the picture string specified by the $picture argument, the calendar specified by the $calendar argument, the language specified by the $language argument, and the country specified by the $country argument. The result of the
function is the formatted string representation of the supplied dateTime, date, or time value.
fn:format-dateTime( |
$value |
as xs:dateTime?, |
$picture |
as xs:string, |
|
$language |
as xs:string?, |
|
$calendar |
as xs:string?, |
|
$country |
as xs:string?) as xs:string? |
fn:format-dateTime($value as xs:dateTime?, $picture as xs:string) as xs:string?Summary: The format-dateTime, format-date, and format-time functions format $value as a string using the picture string specified by the $picture argument, the calendar specified by the $calendar argument, the language specified by the $language argument, and the country specified by the $country argument. The result of the
function is the formatted string representation of the supplied dateTime, date, or time value.
fn:format-number($value as numeric?, $picture as xs:string) as xs:stringfn:format-number( |
$value |
as numeric?, |
$picture |
as xs:string, |
|
$decimal-format-name |
as xs:string) as xs:string |
Summary: The format-number function formats $value as a string using the picture string specified by the $picture argument and the decimal-format named by the $decimal-format-name argument, or the default decimal-format, if there is no $decimal-format-name argument. The syntax of the picture string is described in 16.4.2
Processing the Picture String.
fn:format-time( |
$value |
as xs:time?, |
$picture |
as xs:string, |
|
$language |
as xs:string?, |
|
$calendar |
as xs:string?, |
|
$country |
as xs:string?) as xs:string? |
fn:format-time($value as xs:time?, $picture as xs:string) as xs:string?Summary: The format-dateTime, format-date, and format-time functions format $value as a string using the picture string specified by the $picture argument, the calendar specified by the $calendar argument, the language specified by the $language argument, and the country specified by the $country argument. The result of the
function is the formatted string representation of the supplied dateTime, date, or time value.
fn:function-available($function-name as xs:string) as xs:booleanfn:function-available( |
$function-name |
as xs:string, |
$arity |
as xs:integer) as xs:boolean |
Summary: A function name is said to be available if it matches the name of a core function defined in [Functions and Operators] or the name of an additional function defined in this XSLT specification, or the name of a stylesheet function, or if the processor is able to locate an implementation of an extension function with a matching name.
fn:generate-id() as xs:stringfn:generate-id($node as node()?) as xs:stringSummary: The generate-id function returns a string that uniquely identifies a given node. The unique identifier must consist of ASCII alphanumeric characters and must start with an alphabetic character. Thus, the string is syntactically an XML name. An implementation is free to generate an identifier in any convenient way provided that it always generates the same identifier for the
same node and that different identifiers are always generated from different nodes. An implementation is under no obligation to generate the same identifiers each time a document is transformed. There is no guarantee that a generated unique identifier will be distinct from any unique IDs specified in the source document. If the argument is the empty sequence, the result is the zero-length string. If the argument is omitted, it defaults to the context node.
fn:key($key-name as xs:string, $key-value as xdt:anyAtomicType?) as node()fn:key( |
$key-name |
as xs:string, |
$key-value |
as xdt:anyAtomicType?, |
|
$top |
as node()) as node() |
Summary: The key function does for keys what the id function does for IDs.
fn:regex-group($group-number as xs:integer) as xs:stringSummary: [Definition] While the xsl:matching-substring instruction is active, a set of current captured substrings is available, corresponding to the parenthesized sub-expressions of the regular expression. These captured substrings are accessible using the function regex-group. This function
takes an integer argument to identify the group, and returns a string representing the captured substring.
fn:system-property($property-name as xs:string) as xs:stringSummary: The $property-name argument must evaluate to a lexical QName. The lexical QName is expanded as described in 5.1 Qualified Names.
fn:unparsed-entity-public-id($entity-name as xs:string) as xs:stringSummary: The unparsed-entity-public-id function returns the public identifier of the unparsed entity whose name is given by the value of the $entity-name argument, in the document containing the context node. It returns the zero-length string if there is no such entity, or if the entity has no public identifier. This function maps to the
dm:unparsed-entity-public-id accessor defined in [Data Model].
fn:unparsed-entity-uri($entity-name as xs:string) as xs:anyURISummary: The unparsed-entity-uri function returns the URI of the unparsed entity whose name is given by the value of the $entity-name argument, in the document containing the context node. It returns the zero-length xs:anyURI if there is no such entity. This function maps to the dm:unparsed-entity-system-id accessor defined in [Data Model].
fn:unparsed-text($href as xs:string?) as xs:string?fn:unparsed-text($href as xs:string?, $encoding as xs:string) as xs:string?Summary: The unparsed-text function reads an external resource (for example, a file) and returns its contents as a string.
fn:unparsed-text-available($href as xs:string) as xs:booleanfn:unparsed-text-available( |
$href |
as xs:string, |
$encoding |
as xs:string) as xs:boolean |
Summary: The unparsed-text-available function determines whether a call on the unparsed-text function with identical arguments would succeed.