gpt4 book ai didi

xquery - 在 MarkLogic 函数中删除 "fn:"?

转载 作者:行者123 更新时间:2023-12-04 11:25:27 26 4
gpt4 key购买 nike

MarkLogic 有没有办法不必为每一个 fn: 加上前缀?具有该前缀的功能?我在 Internet 上看到很多代码表明我不需要它。

事情会变得相当冗长,你知道吗? fn:not(fn:contains(...)) , 而不是 not(contains(...))
想法?

谢谢!

最佳答案

和你一样,我不喜欢输入 fn:在我所有的 fn:functions 前面。

在普通 XQuery 主模块中,您不需要 fn:前缀,因为这是默认的函数命名空间并用于所有无前缀的函数。但是,您确实需要 fn:在库模块中,因为它们将默认函数 namespace 更改为库模块 namespace 。这意味着库函数可以在没有任何前缀的情况下相互调用。

但是你可以改回来!这是进行切换的 header 代码。

xquery version "1.0-ml";
module namespace util = "http://markmail.org/util";
declare default function namespace "http://www.w3.org/2005/xpath-functions";

或者,如果您使用的是较旧的 0.9-ml:
xquery version "0.9-ml"
module "http://markmail.org/util"
declare namespace util = "http://markmail.org/util"
default function namespace = "http://www.w3.org/2003/05/xpath-functions"

它将模块放在给定的命名空间中,将 util 分配给该命名空间,然后将默认值分配回正常的 fn:一。

在这个开关之后,没有前缀的函数调用和定义将默认为 fn:字首;这意味着 util 中的所有功能库应该明确使用 util:字首。 (就个人而言,我认为这更清洁。)

关于xquery - 在 MarkLogic 函数中删除 "fn:"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19529920/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com