如何使用xquery查找数据库中是否存在文档

son*_*ony 3 xquery

我在BaseX XML数据库上使用xquery.说,我的数据库中存储了以下文档:doc1,doc2,doc3.

我用什么Xquery来检查给定文档的存在.我尝试了以下方法:

将变量$ doc_name声明为xs:string external;

return boolean($ doc_name)

我希望它的工作方式如下:if doc_name = doc1如果doc_name = nodoc返回false则返回true

但是,我看到一个例外:

java.io.IOException:在第3行第7行停止:[XPST0003]查询意外结束:'boolean("doc1")'.

我也试过回来了

  • return fn:exists($ doc_name)和

  • return fn:doc-available(doc_uri)

这些也不起作用.我看到了同样的查询异常结束.检查文档存在的正确方法是什么?

谢谢,索尼

Dim*_*hev 5

使用标准的XPath/XQuery函数doc-available().

来自规格:

fn:doc-available($uri as xs:string?) as xs:boolean

简介:当且仅当函数调用fn:doc($uri)将返回文档节点时,该函数返回true .

如果$uri是空序列,则返回此函数false.

如果调用on fn:doc($uri)将返回文档节点,则此函数返回true.

如果$uri根据实现应用的规则不是有效的URI fn:doc,则会引发错误[错误:FODC0005].

否则,此函数返回false.

如果此函数返回true,则fn:doc($uri)在相同的执行范围内调用必须返回文档节点.但是,如果为该fn:doc功能选择了非稳定处理,则此保证将丢失.