从XQuery调用JAVA方法
我试图从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
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版,如果这很重要的话