XMLにはXPath表現式やFLWOR表現式で使用できる様々な組み込み関数があります。 使用するXMLプロセッサによってどのような関数が利用できるかは異なります。

avg

number avg(node)

ノードnodeの値(数値)の平均値を返します。

let $a = avg(/bookshelf/book/price)
return <result>{$a}<result>

ceiling

number ceiling(number)

少数点以下を切り上げた値を返します。

collection

node collection (URL)

ドキュメントのノードを返します。URLには、XML文書のURIを指定します。

collection("http://www.sample.org/sample.xml")

concat

string concat(string1, string2, ...)

string1string2を連結した文字列を返します。

contains

boolean contains(string, substring)

文字列 string が文字列 substring を含んでいる場合に true を返します。

count

number count(node)

出現するノードの数を返します。nodeには数を数えるノードをXPath表現で指定します。

次にノード/bookshelf/bookの数を変数number_of_bookに代入するXSLTの例を示します。

<xsl:variable name="number_of_book" select="count(/bookshelf/book)">

次にノード/bookshelf/bookの数を返すFLWOR表現式の例を示します。

let $number_of_book:=count(/bookshelf/book)
return $number_of_book

current

node current()

現在のノードを返します。

distinct-values

node distinct-values(node)

distinct-values関数は入力としてノードのシーケンスを取り、値の重複が取り除かれたシーケンスを返します。

for $a in distinct-values(/book/author)
return $a

document

ドキュメントのノードを返します。

node document(path)
node document(URI)

pathには、XML文書のファイルパスを指定します。

次に、関数documentの使用例を示します。

document("sample.xml")

element-available

boolean element-available(string)

ends-with

boolean ends-with(string, substring)

文字列stringが文字列substringで始終わる文字列であればtrueを返し、そうでなければfalseを返します。

floor

number floor(number)

少数点以下を切り下げた値を返します。

input

input()

アプリケーションがXML文書をユーザーに指定させる方法を有している場合は、ドキュメントのノードを返します。入力がない場合はdynamic errorを発生します。

last

number last()

処理するシーケンスの数を示す整数値を返します。

position

number positon()

シーケンスの現在のコンテキスト位置を示す整数値を返します。

round

number round(number)

小数点以下を四捨五入した値を返します。

round(book/price)

starts-with

boolean starts-with(string, substring)

文字列stringが文字列substringで始まる文字列であればtrueを返し、そうでなければfalseを返します。

sum

number sum(node)

ノードnodeの値(数値)の総和を返します。

let $s = sum(/bookshelf/book/price)
return <result>{$s}<result>