我不知道为什么,但是当我尝试使用时,我得到了()
:
declare namespace uuid='java.util.UUID';
uuid:randomUUID
在XQuery中
为什么会这样?
答案 0 :(得分:2)
您的问题没有一个答案,因为确切的行为取决于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()
函数。