从XQuery调用JAVA方法

从XQuery调用JAVA方法,xquery,Xquery,我试图从XQuery调用一个JAVA方法。但它正在失败 我已将该类声明为: declare namespace b64 = "java:java.util.Base64"; 我这样称呼它: (: Encode a string into Base64 :) declare function javautil:encodebase64($in as xs:string) as xs:string { b64:getEncoder().encodeToString($i

我试图从XQuery调用一个JAVA方法。但它正在失败

我已将该类声明为:

declare namespace b64 = "java:java.util.Base64";
我这样称呼它:

(: Encode a string into Base64 :)
declare function javautil:encodebase64($in as xs:string) as xs:string {
    b64:getEncoder().encodeToString($in)
};

(: Decode a string from Base64 :)
declare function javautil:decodebase64($in as xs:string) as xs:string {
    b64:getDecoder().decode($in)
};
但我得到了一个错误:

XPST0003: XQuery syntax error in #...64:getEncoder().encodeToString#:
expected "}", found "."

我不确定这是语法问题还是其他问题。我在谷歌上寻找例子。但它们中的大多数仅限于一个方法调用。非链接方法,如
getEncoder().encodeToString()
。任何帮助都将不胜感激。谢谢

您混淆了Java语法和XQuery语法-XQuery中没有“.”运算符


在XQuery1.0中,我希望看到
b64:decode(b64:getDecoder(),$In)
,或者在XQuery3.1中
b64:getDecoder()=>b64:decode($In)

您把Java语法和XQuery语法混淆了-XQuery中没有“.”操作符


在XQuery 1.0中,我希望看到
b64:decode(b64:getDecoder(),$In)
,或者在XQuery 3.1中
b64:getDecoder()=>b64:decode($In)

您使用的是哪个XQuery处理器?如果您只是像示例中那样尝试进行Base64编码/解码,那么几个XQuery处理器都有模块来完成这项工作。@Daviddenberg我使用的是Saxon和一个非常旧的。和XQ版本1.0,如果这很重要,您使用的是哪个XQuery处理器?如果您只是像示例中那样尝试进行Base64编码/解码,那么几个XQuery处理器都有模块来完成这项工作。@Daviddenberg我使用的是Saxon和一个非常旧的。和XQ 1.0版,如果这很重要的话