问题标签 [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.
xquery - 如何在 BaseX 中将结果与更新操作一起返回?
我认识到使用 BaseX 客户端执行的 ( insert
/ delete
)-XQueries 总是返回一个空字符串。我觉得这非常令人困惑或不直观。
有没有办法在不再次查询数据库的情况下确定查询是否“成功”(并使用可能有问题的“传递”逻辑,例如“如果我删除了一个节点,XML 中必须有 'oldNodeCount-1' 节点”) ?
xquery - XQuery 用条件失败替换值
我正在创建 xquery 中节点操作的替换值XQuery
。
但似乎这段代码不起作用,因此该IF-ELSE
语句总是会出错。
这是我的代码:
我尝试使用此示例 XML,但结果始终不是XXX
当字段revision
具有值时。(这总是要else
声明)
当前结果:
预期结果
对此有什么想法吗?
更新
正如下面 Har 所推荐的,我将代码更改为:
但似乎结果是一样的。它仍然进入 else () 语句。有任何想法吗?
之前谢谢你。
xml - 如何始终使用 XQUERY 输出一些 XML 可选元素/节点
我有一个要求,我需要始终输出可选的 XML 元素(无论数据可用性如何),同时写入 .csv 文件。
XML 文件格式
这里的 'entries' 根元素 'cancelReason'、'testAccount' 是可选元素,只有在数据存在时才可用。
即,一些记录将具有那些“可选”字段,而另一些则没有。
我编写了一个 XQuery 来提取所有这些元素
我的要求是将所有强制性和可选元素提取为 OUTPUT。即输出元数据始终保持不变。如果可选的“cancelReason”没有值,它将被填充为空白/空值[类似的东西]
请告知 XQUERY 中可以编写的任何选项以实现此目的。
xquery - XQuery-Update:插入表达式的目标节点不可更新
运行此代码
在 Saxon-EE 9.6.0.7 (form Oxygen 18) 我得到错误
插入表达式的目标节点不可更新
BaseX 回归<foo><bar/></foo>
谁是对的?是否有另一种方法来修改任何 xml 表达式,而不仅仅是 doc() 加载的那些(与 Saxon 一起使用)?
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/commandline和http://www.saxonica.com/documentation9.6/index.html#!conformance/ update,我添加了 -tree:linked 标志和 -qversion:1.0 标志(它们导致相同的错误消息):
根据文档,如果设置了 -update:on 标志,则 XQuery Update 应该运行,并且使用 doc() 或 collection() 函数读取 XML,情况也是如此——这些是我的 XQuery 文件中的变量:
我不知道还能尝试什么。如果有人能看到这里出了什么问题,我将不胜感激任何指示!
svg - BaseX 中属性的多次更新
我正在尝试在 BaseX 的 Xquery 函数中更新 SVG 标记的一些属性。到目前为止,我设法更新了一个属性并返回了新节点,但没有返回多个属性。
我尝试了多次更新作为此处描述的语句的变体,但无论我尝试了什么都行不通。
上面的功能基本上就是我想要实现的。
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 应用程序中构建它,每次运行应用程序时都会创建它??)
请指教
xquery - BaseX:尝试在 XQuery 更新工具中的名称空间之间移动元素
我想规范化 XSD 输入文件以放在xs:
任何 XSD 元素之前而不用xs:
XQuery 前置。
在没有前置的输入 XSD 上运行此 xqy 会xs:
返回未更改的输入文件。我确实更新$c
并返回它。那么有什么问题呢?
输入文件:
预期输出:
PS:看来我的问题引起了混乱。我需要xs:
出席,因为我有另一个文本处理程序,它只处理带xs:
前缀的元素。
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
recursion - 使用 XQuery 递归复制文件夹
我必须在 MarkLogic 服务器中复制整个项目文件夹,而不是手动执行,我决定使用递归函数来执行此操作,但这正在成为我曾经有过的最糟糕的想法。我在交易和语法方面遇到问题,但作为新手,我找不到真正的解决方法。这是我的代码,谢谢你的帮助!