Xml Web Dav服务器上的XQuery collection()函数

Xml Web Dav服务器上的XQuery collection()函数,xml,xquery,webdav,saxon,oxygenxml,Xml,Xquery,Webdav,Saxon,Oxygenxml,我使用的是Oxygen XML编辑器17.0(Saxon XQuery 9.6.0.5)。最近,我创建了一个非常基本的XQuery代码,用于对Web Dav服务器上的XML文件执行一些统计测量。假设我只想计算一个目录中.xml文件的数量。我将XQuery文件添加到.xml文件所在的位置。代码如下: xquery version "3.0" encoding "utf-8"; let $docs := collection('./?select=*.xml') return count($docs

我使用的是Oxygen XML编辑器17.0(Saxon XQuery 9.6.0.5)。最近,我创建了一个非常基本的XQuery代码,用于对Web Dav服务器上的XML文件执行一些统计测量。假设我只想计算一个目录中.xml文件的数量。我将XQuery文件添加到.xml文件所在的位置。代码如下:

xquery version "3.0" encoding "utf-8";
let $docs := collection('./?select=*.xml')
return count($docs)
我收到一条错误消息: “FODC0004:集合目录不应使用命名空间”

代码在本地运行时运行良好。 我还可以使用绝对路径搜索一个特定的文件(在服务器上),但我希望有一个通用代码


我猜这与Web Dav服务器上的一些限制有关,但我是这方面的新手。您能提供建议吗?

如果您使用的是Saxon 9.6中的标准集合URI解析器,那么它将首先询问“此URI是表示目录的文件模式URI吗”,如果回答是否(这里可能就是这种情况)然后,它将尝试以XML文档的形式打开资源,其中包含集合中事物的URI列表;这将失败,并显示错误消息


Saxon对WebDAV没有内在的支持,但是您应该能够通过编写自己的CollectionURIResolver来轻松地支持它。如果你让它工作,请分享代码

我认为您可能需要粘贴更多的代码--我在您的代码中没有看到任何您实际试图访问WebDAV主机的内容。我正在将CMS存储库与WebDAV连接起来。连接是在氧气的数据源浏览器中建立的,我可以在那里导入新文件。服务器连接需要VPN。谢谢您的回答。出于我的目的,在本地文件浏览器中设置服务器连接更容易,这样文件路径就可以被视为目录,而集合就可以正常工作。