declare function libjn:remove-keys($sequence as item()*, $keys as xs:string*) as item()*
{
for $item in $sequence
return typeswitch ($item)
case $object as object() return
{|
for $key in $object() [ not (. = $keys) ]
return { $key : $object($key) }
|}
default return $item
};
libjn:remove-keys(
(
{
"Captain" : "Kirk",
"First Officer" : "Spock",
"Engineer" : "Scott"
},
[ 1, 2, 3, 4 ]
{
"Captain" : "Archer",
"Engineer" : "Trip",
},
true(),
1,
jn:null()
),
("Captain", "First Officer", "XQuery Evangelist")
)
{ "Engineer" : "Scott" } [ 1, 2, 3, 4 ] { "Engineer" : "Trip" } true 1 null