我有一個XQuery函數。XQuery:計算函數的參數
declare function local:helloWorld($param1 as xs:string, $param2 as xs:string) as element() {
現在,我想說如果有可能計數傳遞給我的函數的參數。
可能嗎?
在此先感謝
我有一個XQuery函數。XQuery:計算函數的參數
declare function local:helloWorld($param1 as xs:string, $param2 as xs:string) as element() {
現在,我想說如果有可能計數傳遞給我的函數的參數。
可能嗎?
在此先感謝
有沒有函數來計算的傳遞給函數的參數數量。參數的數量由函數聲明確定。它不能根據輸入而改變。
這個article解釋功能。
在標準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引擎。
是的,這是可能的,計數是2.這可能不是你要求的,所以關於上下文的一些信息將是有用的。 – Gunther