В стандартном XQuery это невозможно.
Тем не менее, следующий выпуск Zorba (версия 2.0), который будет доступен очень скоро, будет включать библиотеку для самоанализа, которая точно сделает то, что вы хотите.Например, в текущей версии svn Zorba следующий запрос:
import module namespace sctx = "http://www.zorba-xquery.com/modules/introspection/sctx";
declare function local:helloWorld($param1 as xs:string, $param2 as xs:string) as xs:string {
fn:concat($param1, $param2)
};
sctx:function-arguments-count(xs:QName("local:helloWorld"))
вернет "2" (как и ожидалось).Существует также модуль для отражения, так что вы можете создавать вызовы функций полностью динамически.Но цена, которую вы платите, состоит в том, что этот код больше не будет переносимым на другие движки XQuery.