问题标签 [xquery-3.1]

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 回答
102 浏览

xquery - 除了封闭表达式中的注释外,我还需要一个空序列 () 吗?

当尝试使用 oXygen 编辑器注释掉元素内的节点时,oXygen 只是将其(:<foo>foo 1</foo>:)包装(:成文本节点:)

然后我查看了语法,发现您需要使用封闭的表达式{(:<foo>foo 1</foo>:)}来访问注释语法。

然而,当 BaseX 和 Saxon 9.8 愉快地接受{(:<foo>foo 1</foo>:)}时,Altova 抱怨并需要一个额外的空序列{(:<foo>foo 1</foo>:)()}

https://www.w3.org/TR/xquery-31/#doc-xquery31-EnclosedExpr建议在 XQuery 3.1 中大括号内的表达式是可选的,默认为().

这是否也意味着在 XQuery 3.1 中只使用大括号内的注释就足够了,没有空序列?

总而言之,Saxon 和 BaseX 允许我使用<root>{(:<foo>foo 1</foo>:)}</root>,而 Altova 抱怨语法不正确,迫使我使用<root>{(:<foo>foo 1</foo>:)()}</root>.

这在 XQuery 3.1 中是否仍然需要?

0 投票
2 回答
1466 浏览

xpath - xQuery如何在路径表达式中使用变量

我有一个 XML 文档:

我有一个变量查询emp_no字段定义为:

我想在查询中使用 $emp_no 节点名称 (emp_no) 来做同样的事情,例如:

是否可以在表达式左侧的路径中包含变量?

0 投票
2 回答
322 浏览

xquery - xQuery 删除非选定元素

我有一个名为 employees.xml 的 XML 文档:

我想编写一个名为的函数my-remove-elements,它将删除未选择的属性。例如,只在 XML 文档中保留first_name和:last_name

我的函数的定义是:

这就是我所说的方式:

它抛出我“err:XPTY0004 ...不是元素()的子类型......”我已经更改了代码:

这次仍然是:“err:XPTY0004: 参数 1 的实际基数与函数签名中的基数不匹配......”。你知道如何解决这个问题并让它发挥作用吗?

0 投票
1 回答
527 浏览

xquery - If 语句:不完整的 FLWOR 表达式

我在 BaseX 编辑器中有以下 XQuery 代码,但它在 if 子句中出错,说明

不完整的 FLWOR 表达式:期待“返回”

我尝试使用的代码:

在 XQuery 如何评估表达式或期望它们被排序的方式上,我似乎遗漏了一些重要的东西。上面的代码有什么问题?

这个问题的标题几乎相同,但那里提供的答案没有帮助,因为该 OP 的代码中存在另一个错误。)

0 投票
1 回答
135 浏览

exist-db - 存在-db如何访问pdf

我相信这很简单......我无法理解这个......存在数据库文档在内容提取上有点模糊...... http://exist-db.org/exist/apps/文档/内容提取

我有一个 pdf 文件,其中包含大约 162 张高分辨率图像(pdf 很大......),我不知道如何访问可能创建的任何图像......

请不要毁了我!我刚开始建立一个数据库(在 Uni 的一个版本)我很想有一个传真版(所以一个带有图像文件的选项卡和一个带有转录文本的选项卡)

我的目标是做类似于海德堡大学对“Welsche Gast Digital”所做的事情http://digi.ub.uni-heidelberg.de/diglit/cpg389/0190/image (选择的图像只是一个例子!) 这个pic 单击 faksimile 时,会打开扫描,单击 Transkription 时,会打开转录文本!

我对 Xquery、Xpath 和大多数 X 相关的东西都很陌生。我有一个“工作设计”放在存在数据库中,并且正在查看 TEI 以标记转录等,我担心我将不得不在这个问题上花费相当多的时间......(这与我的工作无关对我来说,这只是为我指明正确的方向)

0 投票
2 回答
1237 浏览

concatenation - Concat 添加双引号

concat如果输入字符串包含一个双引号,则添加另一个双引号。我在eXide上使用 XQuery 3.1 。A̶F̶A̶I̶K̶,̶̶e̶X̶i̶d̶e̶̶u̶s̶e̶s̶̶S̶a̶x̶o̶n̶̶a̶s̶̶X̶Q̶u̶e̶r̶y̶̶e̶n̶g̶i̶n̶e̶.̶(它没有,请参阅下面的 joewiz 回答)。
当我评估连接的字符串时会出现该错误。

return concat("'", 'bar')评估'bar预期的结果。

return concat('"', 'bar')评估为""bar

怎么会?我认为xquery 中的单引号和双引号没有区别

这是我的脚本:

0 投票
0 回答
159 浏览

xquery - XQuery FLWOR group by 子句按文档顺序返回的顺序组

来自 XSLT 背景的我有时很难找到与我习惯的某些 XSLT 方法等效的 XQuery。这个问题是关于如何按文档顺序对组进行排序,XSLT 2/3 似乎是自动执行的,而使用 XQuery 的顺序似乎是未定义的。

更详细地说:在 XSLT 3(或 2)中进行分组我习惯于(https://www.w3.org/TR/xslt-30/#order-of-groups)以“顺序”返回组的第一次出现”,也就是说,例如,当我对一个元素的一些子元素进行分组时,组的顺序由每个组中第一项的文档顺序决定。在 XQuery 中似乎并非如此,其中https://www.w3.org/TR/xquery-31/#id-group-by说:“元组出现在后分组元组中的顺序流是依赖于实现的。”。

简而言之,问题是:如果

不保证我在 XQuery 中的任何顺序,正在使用

而是在 XQuery 中拥有“首次出现的顺序”的正确方法,就像 XSLT 默认情况下那样?

背景:在一个简单的示例中(取自 XSLT 3 规范https://www.w3.org/TR/xslt-30/#grouping-examples)中的city元素

必须按@country属性值分组以总结@pop每个国家的人口值。

一种紧凑的 XSLT 3 方法是

而且我认为通过兼容的 XSLT 3 实现,我可以保证从输入中获得按顺序 ( Italia, France, Deutschland) 的结果:

使用 XQuery 但是我认为我不能保证任何特定的顺序,

https://xqueryfiddle.liberty-development.net/b4GWV7的撒克逊人给我的结果是

确保从 XQuery 中的“首次出现的顺序”中获取顺序的正确方法是使用

正确或最简单、最紧凑的方式?

似乎在https://xqueryfiddle.liberty-development.net/b4GWV7/1上完成了这项工作,但我想就 XQuery 是否有不同的方式、更惯用的方式提出意见。

0 投票
1 回答
39 浏览

xslt-3.0 - tokenize($s) 和 tokenize($s, ' ') 一样吗?

https://www.w3.org/TR/xpath-functions/#func-tokenize解释了单参数版本tokenize

此函数的单参数形式在空白边界处拆分提供的字符串。

然后继续定义或解释

调用fn:tokenize($input)等效于调用 fn:tokenize(fn:normalize-space($input), ' ')),其中第二个参数是单个空格字符 (x20)

但是,当我尝试count(tokenize('1 2 3')), count(tokenize('1&#10;2&#10;3'))使用 Saxon 或 BaseX 或 XmlPrime 时,我得到了虽然所有三种实现中3 3的假定等效项给了我.count(tokenize('1 2 3', ' ')), count(tokenize('1&#10;2&#10;3', ' '))3 1

因此,所有三种实现似乎都与文本解释所说的有关(“在空白边界处拆分提供的字符串”),但如果从字面上传入一个空格,那么规范中的和给出tokenize($s)的等价似乎并不成立只有单个空格用作分隔符,而不是空白边界。fn:tokenize($input)fn:tokenize(fn:normalize-space($input), ' '))

规范中作为单参数版本的定义给出的等价是错误的吗?

0 投票
1 回答
374 浏览

regex - xquery中的积极回顾

我正在 xQuery 中编写一个 Porter 词干分析器,作为第一步,我需要匹配辅音和元音模式。我用作基础的 Perl 示例中的辅音匹配序列是(?:[^aiueoy]|(?:(?<=[aiueo])y)|\by),元音序列是(?:[aiueo]|(?:(?<![aiueo])y))。我需要扩展它以包括字母 aesc (æ),所以这就是我的 xquery 正则表达式:

我正在寻找的 XML 类型示例如下:

但是,在撒克逊人中运行它,我收到以下错误:Query failed with dynamic error: Syntax error at char 17 in regular expression: No expression before quantifier我很确定我的问题是我没有正确构建积极的后视,已将其从 更改<=\1,但我不确定我将如何构建该方面以一种适用于 xQuery 的方式。任何建议将不胜感激。

0 投票
2 回答
743 浏览

xpath - 支持 XPath 3.1 的 .Net 标准库

我正在维护我工作的公司的一个遗留工具,用 C# 编写,并将其转换为 .Net 标准 2.0。它使用Saxon-HE处理器来处理一些 XPath 并替换文件中的一些配置。它在 .NET 上的NuGet 包具有不允许在所有 .Net 标准 2.0 兼容平台(在我的情况下是 .Net Framework 和 .Net 核心)上执行的依赖项,因此我需要用另一种工具替换它,如果标准的 .Net XPath 库。

问题是该工具使用一些 XPaths 来执行复杂的操作,例如连接字符串和选择一个数组项,我不知道它是特定于撒克逊的语法还是标准。

了解这一点很重要,因为如果 XPath 符合某些 XPath 标准,我可以找到另一种方法来处理相同的 XPath。

下面是一些例子:

第一的:

第二:

您对这种 XPath 语法有所了解吗?

谢谢