1

文字列を返そうとしていますが、どういうわけかこの関数はコンパイルされません。私は少し迷っています!

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 ()
)

};

コンパイルがうまくいきませんでした。タイトルに記載されている例外がスローされます。簡単なヘルプがあれば素晴らしいでしょう!

4

1 に答える 1

1

XQuery 関数には return 句はありません。中かっこ内で返される結果を宣言するだけです。return 句は、FLWOR およびその他の式のみにあります。

そのため、コードはアリティ 1 の return という関数の呼び出しとして解析されます。

return ( ... )

エラーを修正する必要があります。

于 2016-06-15T07:16:01.000 に答える