我在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)
这些也不起作用.我看到了同样的查询异常结束.检查文档存在的正确方法是什么?
谢谢,索尼
使用标准的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功能选择了非稳定处理,则此保证将丢失.
| 归档时间: |
|
| 查看次数: |
2495 次 |
| 最近记录: |