2016-06-15 60 views
1

我試圖返回一個字符串,但不知何故,這個函數不會編譯。我有點失落!參數的名稱和數量與靜態上下文中的任何函數簽名都不匹配 - XQuery

declare function local:findValue($vrf as xs:string?, $namefirst as element()*, $schoolfirst as element()*, $namesecond as element()*, $schoolsecond as element()*) as xs:string? { 

return (
    if (not(fn:empty($namefirst) or fn:empty($schoolfirst))) then (
     if ($vrf) then (
      "SCHOOL" 
     ) else (
      "HIGHSCHOOL" 
     ) 
    ) else if (not(fn:empty($namesecond) or fn:empty($schoolsecond))) then (
     if ($vrf) then (
      "SCHOOL" 
     ) else (
      "HIGSCHOOL" 
     ) 
    ) else() 
) 

};

編譯只是不會經過。它會拋出標題中提到的異常,任何快速幫助都會很棒!

回答

1

在XQuery函數中沒有return子句,因爲您只需聲明要在花括號內返回的結果。 return子句僅在FLWOR和其他表達式中。

代碼因此被解析爲一個呼叫到一個函數調用返回與元數1卸​​下纏繞

return (...) 

應該修正錯誤。

相關問題