问题标签 [xquery-update]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
934 浏览

xquery - 如何在 BaseX 中将结果与更新操作一起返回?

我认识到使用 BaseX 客户端执行的 ( insert/ delete)-XQueries 总是返回一个空字符串。我觉得这非常令人困惑或不直观。

有没有办法在不再次查询数据库的情况下确定查询是否“成功”(并使用可能有问题的“传递”逻辑,例如“如果我删除了一个节点,XML 中必须有 'oldNodeCount-1' 节点”) ?

0 投票
1 回答
532 浏览

xquery - XQuery 用条件失败替换值

我正在创建 xquery 中节点操作的替换值XQuery

但似乎这段代码不起作用,因此该IF-ELSE语句总是会出错。

这是我的代码:

我尝试使用此示例 XML,但结果始终不是XXX当字段revision具有值时。(这总是要else声明)

当前结果:

预期结果

对此有什么想法吗?

更新

正如下面 Har 所推荐的,我将代码更改为:

但似乎结果是一样的。它仍然进入 else () 语句。有任何想法吗?

之前谢谢你。

0 投票
2 回答
294 浏览

xml - 如何始终使用 XQUERY 输出一些 XML 可选元素/节点

我有一个要求,我需要始终输出可选的 XML 元素(无论数据可用性如何),同时写入 .csv 文件。

XML 文件格式

这里的 'entries' 根元素 'cancelReason'、'testAccount' 是可选元素,只有在数据存在时才可用。

即,一些记录将具有那些“可选”字段,而另一些则没有。

我编写了一个 XQuery 来提取所有这些元素

我的要求是将所有强制性和可选元素提取为 OUTPUT。即输出元数据始终保持不变。如果可选的“cancelReason”没有值,它将被填充为空白/空值[类似的东西]

请告知 XQUERY 中可以编写的任何选项以实现此目的。

0 投票
1 回答
219 浏览

xquery - XQuery-Update:插入表达式的目标节点不可更新

运行此代码

在 Saxon-EE 9.6.0.7 (form Oxygen 18) 我得到错误

插入表达式的目标节点不可更新

BaseX 回归<foo><bar/></foo>

谁是对的?是否有另一种方法来修改任何 xml 表达式,而不仅仅是 doc() 加载的那些(与 Saxon 一起使用)?

0 投票
1 回答
199 浏览

command-line - 更新到 oXygen 17.1 后从命令行调用 XQuery Update

在过去的一年中,我们一直在运行我编写的批处理脚本,以使用 Saxon 从 Windows 命令行调用一系列 XQuery 更新。在我们使用 oXygen 16 时它运行良好,但是在我们部门的所有机器都升级到 oXygen 17.1 之后,脚本现在抛出了一个我似乎无法修复的错误。任何想法将不胜感激。

这曾经在安装 oXygen 16 时起作用:

我已经确认 .jar 文件位于相同的相对位置(oXygen 版本号是路径的唯一更改)并且名称与以前相同。然而,在将类路径更新为“C:\Program Files\Oxygen XML Editor 17\lib\saxon9ee.jar”后,脚本会引发以下错误:

来自 Saxonica 的 Saxon-EE 9.6.0.7J

Java 版本 1.8.0_92

java.lang.UnsupportedOperationException:此 Saxon 配置不支持 XQuery 更新

在 net.sf.saxon.s9api.XQueryCompiler.setUpdatingEnabled(XQueryCompiler.java:212)

在 net.sf.saxon.Query.doQuery(Query.java:281)

在 net.sf.saxon.Query.main(Query.java:111)

查询期间出现致命错误:java.lang.UnsupportedOperationException:此 Saxon 配置不支持 XQuery 更新

文件名、目录名或卷标语法不正确。

我的机器上安装了 Java 8。我还确保从 oXygen 编辑器中调用 XQuery 更新仍然有效。

在阅读了http://www.saxonica.com/documentation9.6/index.html#!using-xquery/commandlinehttp://www.saxonica.com/documentation9.6/index.html#!conformance/ update,我添加了 -tree:linked 标志和 -qversion:1.0 标志(它们导致相同的错误消息):

根据文档,如果设置了 -update:on 标志,则 XQuery Update 应该运行,并且使用 doc() 或 collection() 函数读取 XML,情况也是如此——这些是我的 XQuery 文件中的变量:

我不知道还能尝试什么。如果有人能看到这里出了什么问题,我将不胜感激任何指示!

0 投票
1 回答
132 浏览

svg - BaseX 中属性的多次更新

我正在尝试在 BaseX 的 Xquery 函数中更新 SVG 标记的一些属性。到目前为止,我设法更新了一个属性并返回了新节点,但没有返回多个属性。

我尝试了多次更新作为此处描述的语句的变体,但无论我尝试了什么都行不通。

上面的功能基本上就是我想要实现的。

0 投票
0 回答
66 浏览

xquery - 将 xsd 文件加载到 Sedna db 中并将唯一元素插入其中

请注意,我正在开发一个基于 Sedna 数据库 3.5 的学术项目,我有一个数据库,它应该包含 4 个 XML 文件,每个文件都有自己的模式文件,第一个问题:如何加载这些 XSD 文件?我曾尝试加载包含 XML 和 XSD 文件的集合,但我认为该集合适用于所有文件的一个架构,并且每个文件都有不同的架构,现在,我正在尝试从 .xml 加载我的 xml 文档。 net 应用程序(不是来自 cmd.exe)当我使用 Sedna .net API 时,我使用 Sedna 上传功能,如:

但是我可以为他们的 xsd 文件做什么???

第二个问题:在我正确加载 xsd 文件后,我有一个在某个文件上插入新节点的查询,但我认为我的架构中的主键/唯一键,但如果我是对的,Sedna 并不关心唯一性,所以我有在插入之前创建一个触发器以检查插入的值是否已经存在,不是吗?如果是这样,我该如何实现这个触发器以及何时调用它(如果我在我的 .net 应用程序中构建它,每次运行应用程序时都会创建它??)

请指教

0 投票
1 回答
86 浏览

xquery - BaseX:尝试在 XQuery 更新工具中的名称空间之间移动元素

我想规范化 XSD 输入文件以放在xs:任何 XSD 元素之前而不用xs:XQuery 前置。

在没有前置的输入 XSD 上运行此 xqy 会xs:返回未更改的输入文件。我确实更新$c并返回它。那么有什么问题呢?

输入文件:

预期输出:

PS:看来我的问题引起了混乱。我需要xs:出席,因为我有另一个文本处理程序,它只处理带xs:前缀的元素。

0 投票
1 回答
793 浏览

xml - 如何使用 XQuery 输出具有相同名称[多次出现]的 XML 节点

这里的“条目”是具有子元素的父节点,即“id”、“UseCountIds”。上面的例子是 id=1 。同样,对于 id=2 或 id=3 等,也有许多“条目”。

'id' 是一种独特的价值。

我做了一个 XQuery 来从 XML Payload 中提取 Child 元素。下面是使用的 Xquery

问题是,如果将上述 XQuery 输出加载到 .csv 文件中,它会显示为

UseCountIds(多个值)出现在以空格分隔的列中。

我的要求是具有如下所需的输出

此外,UseCountIds 不仅限于出现 3 次。对于唯一的 'id' 可以有 'n' no。的 UseCountIds 。

将 UseCountIds 连接到行级别的唯一“id”总是好的。

请分享您的想法,如何调整 XQuery 以获得上述所需的输出。

谢谢, TG

0 投票
1 回答
281 浏览

recursion - 使用 XQuery 递归复制文件夹

我必须在 MarkLogic 服务器中复制整个项目文件夹,而不是手动执行,我决定使用递归函数来执行此操作,但这正在成为我曾经有过的最糟糕的想法。我在交易和语法方面遇到问题,但作为新手,我找不到真正的解决方法。这是我的代码,谢谢你的帮助!