Hi Everyone,

Say I have an amped function to set doc permissions. E.g.

declare function my:document-set-permissions(
   $URI as xs:string,
   $permissions as element()*
) as empty-sequence() {
   try {
     let $query := '
       declare variable $URI external;
       declare variable $permissions external;
       xdmp:document-set-permissions($URI, $permissions)
     '
     let $args := (
       fn:QName("", "URI"), $URI,
       fn:QName("", "permissions"), $permissions
     )
     return xdmp:eval($query, $args)
   }
   catch ($e) { fn:error(xs:QName("e:fail"), "operation failed", $e) }
};

I call this like so:

let $URI := "myURI"
let $permissions := (
   xdmp:permission("app-user", "read"),
   xdmp:permission("app-user", "update")
)
return my:document-set-permissions($URI, $permissions)

However, I get this error which is caused by fn:data which is presumably 
called by xdmp:eval.

XDMP-NONMIXEDCOMPLEXCONT 1.0-ml Node has complex type with non-mixed 
complex content XDMP-NONMIXEDCOMPLEXCONT: fn:data(<sec:permission 
xmlns:sec="http://marklogic.com/xdmp/security";><sec:capability>update</sec:capability><sec:role-id>...</sec:permission>)
 


Is there a way to pass in the permissions elements?

Best,

Tim Finney
_______________________________________________
General mailing list
General@developer.marklogic.com
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to