Collections 如何设置XQJ连接的默认/基本集合

Collections 如何设置XQJ连接的默认/基本集合,collections,xquery,exist-db,Collections,Xquery,Exist Db,我想通过xqjapi查询existdb。因此,我有一个XQuery文件,我想将它应用于数据库不同集合中的几个不同文档 我的问题是,如何设置文档/集合的路径?我只想对特定文档/集合应用XQuery,不能直接在XQuery文档中设置路径(使用doc('path/to/doc')函数),因为我想对具有不同路径的多个文件应用相同的XQuery 我可以将Java变量绑定到Xquery表达式,但必须有一种更优雅的方法来使用XQJAPI实现这项任务。希望您能帮我一点忙。如果您事先知道特定的文档URI,可以将一

我想通过xqjapi查询existdb。因此,我有一个XQuery文件,我想将它应用于数据库不同集合中的几个不同文档

我的问题是,如何设置文档/集合的路径?我只想对特定文档/集合应用XQuery,不能直接在XQuery文档中设置路径(使用doc('path/to/doc')函数),因为我想对具有不同路径的多个文件应用相同的XQuery


我可以将Java变量绑定到Xquery表达式,但必须有一种更优雅的方法来使用XQJAPI实现这项任务。希望您能帮我一点忙。

如果您事先知道特定的文档URI,可以将一组URI绑定为xs:string序列,然后可以在XQuery表达式中迭代它们,根据需要对每个URI执行操作

declare variable $uris as xs:string* external;

for $uri in $uris
return (
 (: perform operation against $uri :)
)
或者如果您知道集合uri

declare variable $collection-uri as xs:string external;

for $document-node in fn:collection($collection-uri)
return (
  (: perform operation against document-node() :)
)

在eXist XQJ API的未来版本中,您可以将集合设置为默认上下文,这与XQJ标准和XQuery 1.0/3.0标准都不符,但其他用户似乎非常想要此功能。

如果您事先知道特定的文档URI,您可以将一组URI绑定为xs:string序列,然后在XQuery表达式中迭代它们,根据需要对每个URI执行操作

declare variable $uris as xs:string* external;

for $uri in $uris
return (
 (: perform operation against $uri :)
)
或者如果您知道集合uri

declare variable $collection-uri as xs:string external;

for $document-node in fn:collection($collection-uri)
return (
  (: perform operation against document-node() :)
)

在eXist XQJ API的未来版本中,您将能够将集合设置为默认上下文,这与XQJ标准和XQuery 1.0/3.0标准都不符,但其他用户似乎非常想要此功能。

看起来要么是XQY负责管理路径,要么是Java,在这种情况下,需要将路径作为外部变量传递给XQY。我不确定有没有更优雅的方法。看起来要么是XQY负责管理路径,要么是Java负责管理路径,在这种情况下,您需要将路径作为外部变量传递给XQY。我不确定有没有更优雅的方式。好的,谢谢大家,然后是变量绑定,希望我能绕过它。好的,谢谢大家,然后是变量绑定,希望我能绕过它。