使用java的xquery中的UUID随机数



我不知道为什么,但我在尝试使用时得到了()

declare namespace uuid='java.util.UUID';
uuid:randomUUID

在XQuery 中

为什么会发生这种情况?

您的问题没有单一的答案,因为具体的行为取决于XQuery处理器。


使用BaseX,如果您调用uuid:randomUUID作为函数,您应该会得到预期的结果:

declare namespace uuid = 'java.util.UUID';
uuid:randomUUID()

但建议改为调用random:uuid()。不需要导入命名空间,而且评估速度将比Java函数调用更快。


对于Saxon和(据我所知(eXist-db,您需要在命名空间URI字符串前面加上java:。这也适用于BaseX:

declare namespace uuid = 'java:java.util.UUID';
uuid:randomUUID()

使用MarkLogic,可以使用sem:uuid-string()函数。

最新更新