And a complementary remark: You can also use the built-in function out:format (it will be optimized better than Java functions):
let $string := 'Format string: %1$d - %2$s' let $i := 1 let $j := 'text' return out:format($string, $i, $j) For formatting numbers, XQuery provides the function fn:format-number: format-number(1, '0000') Best, Christian On Tue, Apr 23, 2019 at 6:41 AM Johannes Bauer <[email protected]> wrote: > > Hi Luan, > > try this: > > declare namespace java = "java:java.lang.String"; > > let $string := 'Format string: %1$d - %2$s' > let $i := 1 > let $j := 'text' > let $args := ($i, $j) > > return java:format($string, $args) > > Best regards > Johannes > > Am 23.04.2019 um 06:29 schrieb Luan Bui: > > Hello all, > How can I call a method with variable arguments in BaseX with Java > binding? I am trying to do this: > > let $string := 'Format string: %1$d - %2$s' > let $i := 1 > let $j := 'text' > return > Q{java.lang.String}format·java.lang.String·java.lang.Object*($string, > $string, $i, $j) > > However, I got the error: [XPDY0002] > {java.lang.String}format·java.lang.Stri...: Context is undeclared. > Thank you for your time. > >

