我需要在转换中替换$ content值。
xquery version "1.0-ml";
module namespace test =
"http://marklogic.com/rest-api/transform/security-load";
declare function test:transform(
$context as map:map,
$params as map:map,
$content as document-node()
) as document-node()
{
let $jsonObj := xdmp:from-json($content)
let $inputval := "fname,lname"
let $entity :="holidayDate"
let $domain :="referenceData"
let $uri := xdmp:apply(
xdmp:function(xs:QName("createUri"), "/wdsUtils.sjs"),
$jsonObj,
$inputval)
let $root := xdmp:apply(
xdmp:function(xs:QName("addMetaData"), "/wdsUtils.sjs"),
$entity,
$domain,
$jsonObj)
let $output := $root
return map:put($context,"uri",$uri),
document { $output }
};
我需要用$ root值更改$ content值并返回它。我试图直接返回$ root但它没有用,我收到了无效的文档错误。
问题是$output
的范围是FLWOR语句,但你在那个语句之外引用它。请参阅下面的return
中的括号。
xquery version "1.0-ml";
module namespace test = "http://marklogic.com/rest-api/transform/security-load";
declare function test:transform(
$context as map:map,
$params as map:map,
$content as document-node()
) as document-node()
{
let $jsonObj := xdmp:from-json($content)
let $inputval := "fname,lname"
let $entity :="holidayDate"
let $domain :="referenceData"
let $uri :=
xdmp:apply(
xdmp:function(xs:QName("createUri"), "/wdsUtils.sjs"),
$jsonObj,
$inputval
)
let $root :=
xdmp:apply(
xdmp:function(xs:QName("addMetaData"), "/wdsUtils.sjs"),
$entity,
$domain,
$jsonObj
)
let $output := $root
return (
map:put($context,"uri",$uri),
document { $output }
)
};