Marklogic XDMP-ARGTYPE:(错误:XPTY0004)arg0不是xs:anyAtomicType类型?
我得到一个错误: XDMP-ARGTYPE:(err:XPTY0004)local:getrole(xs:unsignedLong($perm/sec:role id))| |“=”| | xs:string($perm/sec:capability)——arg0不是xs:anyAtomicType类型吗 我不知道怎么了。我正在尝试获取每个用户的权限列表。结果应该是userA和角色列表,userB和角色列表Marklogic XDMP-ARGTYPE:(错误:XPTY0004)arg0不是xs:anyAtomicType类型?,marklogic,Marklogic,我得到一个错误: XDMP-ARGTYPE:(err:XPTY0004)local:getrole(xs:unsignedLong($perm/sec:role id))| |“=”| | xs:string($perm/sec:capability)——arg0不是xs:anyAtomicType类型吗 我不知道怎么了。我正在尝试获取每个用户的权限列表。结果应该是userA和角色列表,userB和角色列表 let $uris := cts:uris( (),
let $uris := cts:uris(
(),
(),
cts:and-query(
cts:collection-query("/users")
)
)
return
(:loop for each user & assign permission to variable:)
for $user in $uris
let $perm := xdmp:document-get-permissions(($user))
return
<info>
<user>{$user}</user>
<roles>{(local:getrole(xs:unsignedLong($perm/sec:role-id)) || "=" ||
xs:string($perm/sec:capability))}</roles>
</info>
let$uris:=cts:uris(
(),
(),
cts:和查询(
cts:集合查询(“/users”)
)
)
返回
(:为每个用户循环并将权限分配给变量:)
对于$URI中的$user
让$perm:=xdmp:document获得权限(($user))
返回
{$user}
{(local:getrole(xs:unsignedLong($perm/sec:role id))| |“=”| |
xs:string($perm/sec:capability))}
最有可能的是local:getrole(xs:unsignedLong($perm/sec:role id)
返回多个值,这是尝试使用|
运算符压缩序列时出现的错误
由于用户可以(而且很可能会)拥有多个权限,因此您也需要循环使用这些权限
for $user in $uris
for $perm in xdmp:document-get-permissions(($user))
...