Hello all,

this morning just stumbled into this issue and I'm wondering whether it could be somehow smoothed up ...

I have the following RestXQ function:

declare
  %rest:path("/f")
  %rest:GET
  %output:method("json")
function a:f() {
  (:code ...:)
};

1) Replacing comment with the following code correctly returns an empty object:

  let $out := (<json type="object"></json>)
  return $out

2) Replacing comment with the following code correctly returns an expected exception (" [SERE0023] Only one item can be serialized with JSON." :

let $out := (<json type="object"></json>, <json type="object"></json>)
  return $out

3) Replacing comment with the following code returns a somewhat less expected Null-pointer exception :

let $out := (<json type="object"></json>, <json type="object"></json>)
return array{$out}

4) In order to get the expected Json array I need to write the code like the following:

 let $out := (<json type="object"></json>, <json type="object"></json>)
return array{ $out ! json:parse(json:serialize(.), map{ "format" : "map"}) }

I'm not sure whether the array could be inferred from the sequence directly in a pattern like 2. But I would expect that 3) should work. Isn't it?

Thanks for any explanation.

Regards,

Marco.

Reply via email to