Когда вы оцениваете эту строку, у нее нет контекста, чтобы знать, каким должно быть значение $uri
. Вы можете передать эти значения контекста во втором параметре при вызове:
let $uri :="/tmp/myDoc.csv"
let $doc:= xdmp:eval('fn:doc($uri)',
(xs:QName("uri"), $uri),
<options xmlns="xdmp:eval">
<database>{xdmp:database("My-Database")}</database>
</options>)
return $doc
Но вам следует подумать об использовании xdmp:invoke-function()
вместо этого с анонимной функцией:
let $uri := "/tmp/myDoc.csv"
xdmp:invoke-function(function(){ fn:doc($uri) },
<options xmlns="xdmp:eval">
<database>{xdmp:database("My-Database")}</database>
</options>
)
Это в целом проще и безопаснее использовать xdmp:invoke-function
.