马克逻辑,Xquery

Marklogic, Xquery

我正在使用 MarkLogic 查询控制台。我的 XQuery 文件工作不正常,我遇到了这个错误 MarkLogic Xquery 请求错误:

XDMP-UNEXPECTED: (err:XPST0003) Unexpected token syntax error, unexpected Dollar_"

这是我正在执行的代码:

declare function fill:getA() as node()* { 
  for $projectId in /cf:Project/@Id/string() 
    $s := fill:getS($projectId)    
    $t := fill:getT($projectId) 

好的。在您在评论中提供代码后,我将其粘贴到您的工单中。在尝试格式化之前,很明显代码有误。xQuery 中的变量赋值以 let 开头,如:

let $foo := bar

没有

$foo := bar

因此,您的错误从这里开始:

 for $projectId in /cf:Project/@Id/string() $sourceCatalogId := fill
 ...

至少应该这样写:

for $projectId in /cf:Project/@Id/string()
  let $sourceCatalogId := fill
  ...

请注意美元符号前的 let。这也是错误对您说的 - “我不期待美元符号.. - 可能是因为它期待单词 let.

我没有检查其余代码。这应该足以为您指明清理代码的方向。此外,使用查询感知编辑器也会在这方面为您提供帮助。

在$s和$t求解并执行之前添加let变量。