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

发布于 2024-10-15 17:21:08 字数 579 浏览 3 评论 0原文

我在 BaseX XML 数据库上使用 xquery。假设我的数据库中存储了以下文档:doc1、doc2、doc3。

我使用什么 Xquery 来检查给定文档是否存在。我尝试了以下操作:

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

return boolean($doc_name)

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

但是,我看到一个异常:

java.io.IOException: Stopped at line 3, column 7: [XPST0003] 查询意外结束:'boolean("doc1")'。

我还尝试了 return

  • return fn:exists($doc_name) 和

  • return fn:doc-available(doc_uri)

这些也不起作用。我看到相同的查询异常结尾。检查文档是否存在的正确方法是什么?

谢谢, 索尼

I am using xquery over BaseX XML Database. Say, I have the following documents stored in my database: doc1, doc2, doc3.

What Xquery do I use to check the existence of a given document. I tried the following:

declare variable $doc_name as xs:string external;

return boolean($doc_name)

I expected it to work as follows:
if doc_name = doc1 return true
if doc_name = nodoc return false

But, I see an exception:

java.io.IOException: Stopped at line 3, column 7:
[XPST0003] Unexpected end of query: 'boolean("doc1")'.

I also tried return

  • return fn:exists($doc_name) and

  • return fn:doc-available(doc_uri)

These do not work either. I see the same end of query exception. What is the correct way of checking a document's existence?

Thanks,
Sony

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

东京女 2024-10-22 17:21:08

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

根据规范:

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

摘要:当且仅当函数调用 < code>fn:doc($uri) 将返回一个文档节点。

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

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

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

否则,该函数返回false

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

Use the standard XPath/XQuery function doc-available() .

From the Spec:

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

Summary: The function returns true if and only if the function call fn:doc($uri) would return a document node.

If $uri is an empty sequence, this function returns false.

If a call on fn:doc($uri) would return a document node, this function returns true.

If $uri is not a valid URI according to the rules applied by the implementation of fn:doc, an error is raised [err:FODC0005].

Otherwise, this function returns false.

If this function returns true, then calling fn:doc($uri) within the same ·execution scope· must return a document node. However, if non-stable processing has been selected for the fn:doc function, this guarantee is lost.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文