!function;param?desc?param?desc...;expression?result?expression?result
fn:last();current context node?Returns context size in expression context;
fn:position();current context node?Returns possition of current context node in expression context;
fn:count(node-set);node-set?Node-set to count nodes in;count(//b:book)?5?count(//person[@id>5])?17
fn:id(object);if nodeset?string value of each node in the node-set is treated as an id?if string?treated as a space-separated list of ids;
fn:local-name(node-set);node-set?Extract first node and return its local name;local-name(//b:books)?b:book?local-name(//b:book)?b:title
fn:local-name();current context node?Extract first node and return its local name;
fn:namespace-uri(node-set);node-set?Extract first node and return the namespace URI;namespace-uri(//b:book)?http://www.book.com?
fn:namespace-uri();current context node?Extract first node and return the namespace URI;
fn:name(node-set);node-set?Extract first node and return QName;name(//b:books/*)?b:book?name(//b:book/*)?b:title
fn:name();;current context node?Extract first node and return QName;

fn:string(object);string?The object to convert to a string;string((1<0))?false?string(.11)?0.11
fn:string();current context node?Converts current context node to string
fn:concat(string, string, string*);string?String to be merged?string?String to be merged?string*?any number of strings;concat("aa","bb")?aabb?concat("aa", 123)?aa123
fn:starts-with(string, string);string?String to be searched?string?String to be found;starts-with("aabb", "aa")?true?starts-with("aabb", "cc")?false
fn:contains(string, string);string?String to be searched?string?String to be found;contains("abc", "c")?true?contains("abc", "1")?false
fn:substring-before(string, string);string?String to be searched?string?String to be used to split;substring-before("aabbcc","bb")?aa?substring-before("aabbcc","c")?aabb
fn:substring-after(string, string);string?String to be searched?string?String to be used to split;substring-after("aabbcc","bb")?cc?substring-after("aabbcc","a")?abbcc
fn:substring(string, number, number);string?String to be cut?integer?Starting position?integer?Length of the substring;substring("aabbcc", 1, 2)?aa
fn:substring(string, number);string?String to be cut?integer?Starting position?;substring("aabbcc", 3)?bbcc
fn:string-length(string);string?String of which length should be returned;string-length("aabbcc")?6?string-length("aa bb cc")?8
fn:string-length();current context node?Converts current node to string and returns length;
fn:normalize-space(string);string?String to be normalized;normalize-space("aa bb cc")?aa bb cc?normalize-space("aa    bb cc")?aa bb cc
fn:normalize-space();current context node?Converts current node to string and performs normalization;
fn:translate(string, string, string);string?String to be edited?string?sequence of characters to be replaced?string?sequence of character to be used in replacement;translate("aabbcc", "ab","xz")?xxzzcc?translate("Test sequence", "e","z")?Tzst szquzncz

fn:boolean(object);expression?The expression to be evaluated;boolean(1>2)?false?boolean("a"="a")?true
fn:not(boolean);boolean?Boolean value to be inverted;not("a"="a")?false?not(true)?false
fn:true();?Returns boolean value true;true()?true
fn:false();?Returns boolean value false;false()?false
fn:lang(string);string?Checks if the context node matches given language;(context: <data xml:lang="en"/>): lang('en')?true?(context: <data xml:lang="en-US"/>): lang('en')?true?(context: <data xml:lang="de"/>): lang('en')?false

fn:number(object);object?Converts given object to a number;number(true())?1?number(false())?0?number("55")?55?number("  55   ")?55
fn:number();current context node?Converts current context node to a number;number(true())?1?number(false())?0?number("55")?55?number("  55   ")?55
fn:sum(node-set);node-set?Summs each node from the set passed through number() function; 
fn:floor(number);number?Decimal number to be converted to integer;floor(3.1)?3?floor(3.99)?3
fn:ceiling(number);number?Decimal number to be converted to integer;ceiling(3.1)?4?ceiling(3.99)?4
fn:round(number);number?Decimal number to be converted to integer;round(3.1)?3?round(3.6)?4