Вызовы функций
При обработке выражения используется , позволяющее функцию в выражении сопоставить с библиотекой функций, соответствующей контексту обрабатываемого выражения, обработать каждый из , приведя к тому типу, который необходим для этой функции, и наконец вызвать саму функцию, передав ей преобразованные аргументы. Если указано неправильное количество аргументов или какой-либо аргумент не может быть приведен к требуемому типу, фиксируется ошибка. Результатом обработки выражения будет результат, возвращаемый соответствующей функцией.
Приведение аргумента к типу string осуществляется как при вызове функции . Приведение к типу number осуществляется как при вызове функции . Приведение к типу boolean осуществляется как при вызове функции . Аргумент, тип которого не соответствует набору узлов, уже не может быть приведен к этому типу.
[16] FunctionCall ::= '(' ( ( ',' )* )? ')' [17] Argument ::=