如何使用xquery查找数据库中是否存在文档
我在BaseXXML数据库上使用xquery。比如说,我的数据库中存储了以下文档:doc1、doc2、doc3 我使用什么Xquery检查给定文档的存在性。我尝试了以下方法: 将变量$doc_name声明为xs:string external 返回布尔值($doc\u name) 我预计它的工作如下: 如果doc_name=doc1返回true 如果doc_name=nodoc返回false 但是,我看到一个例外: java.io.IOException:在第3行第7列停止: [XPST0003]查询意外结束:“boolean(“doc1”)” 我也试着返回如何使用xquery查找数据库中是否存在文档,xquery,Xquery,我在BaseXXML数据库上使用xquery。比如说,我的数据库中存储了以下文档:doc1、doc2、doc3 我使用什么Xquery检查给定文档的存在性。我尝试了以下方法: 将变量$doc_name声明为xs:string external 返回布尔值($doc\u name) 我预计它的工作如下: 如果doc_name=doc1返回true 如果doc_name=nodoc返回false 但是,我看到一个例外: java.io.IOException:在第3行第7列停止: [XPST0003
- 返回fn:exists($doc_name)和
- 返回fn:doc可用(doc\u uri)
索尼使用标准的XPath/XQuery函数 根据规范:
fn:doc可用($uri为xs:string?)为xs:boolean
Summary:当且仅当函数调用fn:doc($uri)
将返回文档节点时,函数才会返回true
如果$uri
是空序列,则此函数返回false
如果对fn:doc($uri)
的调用将返回文档节点,则此函数将返回true
根据fn:doc
的实现所应用的规则,如果$uri
不是有效的uri,则会引发错误[err:FODC0005]
否则,此函数将返回false
如果此函数返回
true
,则在同一执行范围内调用fn:doc($uri)
必须返回文档节点。但是,如果为fn:doc
功能选择了非稳定处理,则此保证将丢失。好问题,+1。请参阅我的答案以获得完整且简单的解决方案。是的,请参阅我的编辑。我也试过了。返回fn:doc-available()返回false。但是,您可以看到文档位于给定的url。@sony:该进程是否有足够的权限使用此类http:
协议?@sony:如果您尝试不使用返回
?