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

Xquery 除了封闭表达式中的注释外,我还需要一个空序列()吗?,xquery,xquery-3.1,Xquery,Xquery 3.1,当尝试使用oXygen编辑器注释出元素内部的节点时,oXygen只是将其包装成(:foo 1:),但我随后发现,这样节点没有被注释掉,而是以(:作为文本节点的前缀,并以:)作为文本节点的后缀 然后我查找了语法,发现您需要使用一个封闭的表达式{(:foo 1:)}来访问注释语法 然而,当BaseX和Saxon 9.8愉快地接受{(:foo 1:)}时,Altova抱怨并需要额外的空序列{(:foo 1:)()} 建议在XQuery 3.1中,大括号内的表达式是可选的,默认为() 这是否也意味着在X

当尝试使用oXygen编辑器注释出元素内部的节点时,oXygen只是将其包装成
(:foo 1:)
,但我随后发现,这样节点没有被注释掉,而是以
(:
作为文本节点的前缀,并以
:)作为文本节点的后缀

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

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

建议在XQuery 3.1中,大括号内的表达式是可选的,默认为
()

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

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


这在XQuery 3.1中仍然是必需的吗?

听起来像是他们的评论中的一个bug,这在XQuery编辑器中很常见。在元素中—假设您正在使用,而不是—使用XML注释:

<hello>world
  <!-- Don't print me -->
</hello>
element hello {
  'world' (: Don't print me :)
}

很抱歉,我还没有完成这个问题,在添加标记时无意中发布了它。我的目的是注释掉一个节点,而不是在构造的内容中添加注释。@MartinHonnen我对规范的理解与你的相同,空序列是可选的,并且通过使用大括号暗示(MarkLogic也有这种行为)。我认为Altova的解析器是错误的。但是请注意,只有在坚持使用XQuery注释的情况下,这才是一个问题——通过在该元素中使用XML注释,可以完全避免这个问题。i、 e.:
好吧,XQuery注释确保注释掉的部分不是创建文档的一部分,如果我使用XML注释,那么我会在创建的文档中插入注释。XQuery 3.1使表达式成为可选表达式。这看起来像一只Altova虫子。