declare function libjn:descendant-arrays($sequence as item()*) as array()*
{
for $item in $sequence
return typeswitch ($item)
case array() return (
$item,
libjn:descendant-arrays($item())
)
case object() return
libjn:descendant-arrays(libjn:values($item))
default return ()
};
libjn:descendant-arrays(
(
{ "foo" : { "bar" : [ 1, 2 ] } },
[ [ { "foo" : "bar", "bar" : "foo" } ] ],
true(),
1,
jn:null()
)
)
[ 1, 2 ]
[ [ { "foo" : "bar", "bar" : "foo" } ] ]
[ { "foo" : "bar", "bar" : "foo" } ]