0

私のXQueryの知識はかなり不足していますが、XQIB(ブラウザーのXQuery)を試してみていますが、変数エラーを設定するだけです。

let $foo := "bar"

...エラーを生成します

MXQuery output the following error during compilation:
Line 1, Column 18: err:XPST0003 Error while parsing FFLWOR Expr: 'return' expected!
let $foo := "bar"    ERROR                        
Unknown.anonymous(Unknown Source)

XQIBサイトでサンプルを確認しましたが、letアラートや関数などのサブルーチンには常にステートメントが含まれているようです。これは、XQueryでは、コードが独立しているのではなく、常にある種の関数に存在している必要があることを示唆していますか?

たとえば、それらの例の1つはこれですが、もちろん機能します。

b:alert(
    let $x := <a><b>2</b><c>4</c></a>
    return xs:string($x/b * $x/c)
)

しかし、これ、私の変更されたバージョンはそうではありません。

let $x := <a><b>2</b><c>4</c></a>
b:alert(
    return xs:string($x/b * $x/c)
)

後者はどうしたの?助けてくれてありがとう。

4

1 に答える 1

3

あなたのリターンは間違った位置にあります:

let $x := <a><b>2</b><c>4</c></a>
return
    b:alert(
        xs:string($x/b * $x/c)
    )

必要なのreturnは、flwor-expressionの一部(の一部)を使用した場合のみです。let1つを開始するので、その後に必要returnになります。パラメータとして1つ持っていないので、returnここに置く必要はありません(また、どちらも許可されていません)。

于 2012-06-09T21:01:37.393 に答える