更新代码
我的图书馆模块就像这样
module namespace test="http://try.marklogic.com/test";
declare function test:median(
$map as map:map*
) as node()*
{
cts:search(fn:doc(),
cts:and-query((
cts:element-word-query(
xs:QName("College"),map:get($map,"College")),
cts:element-word-query(
xs:QName("Year"),map:get($map,"Year")),
cts:element-word-query(
xs:QName("Dep"),map:get($map,"Dep")),
cts:element-word-query(
xs:QName("Grade"),map:get($map,"Grade")),
cts:element-range-query(xs:QName("Date"), ">",
map:get($map,"StartDate")),
cts:element-range-query(xs:QName("Date"), "<",
map:get($map,"EndDate")))))
};
我的主要模块就像这样
import module namespace test = "http://try.marklogic.com/test" at "/lib1.xqy";
let $map := map:map()
let $College := "UCLA"
let $Year := "2000"
let $StartDate := xs:date("2017-01-06")
let $EndDate := xs:date("2018-01-06")
let $Dep := "CSE"
let $Grade := "A"
let $put := ( map:put($map, "College",$College),
map:put($map, "Year",$Year),
map:put($map, "Date",$StartDate),
map:put($map, "Date",$EndDate),
map:put($map, "Dep",$Dep),
map:put($map, "Grade",$Grade) )
return test:median($map)
如何单独传递参数而不是在主模块中指定?
答案 0 :(得分:2)
摆脱&#34; as cts:search
&#34;你图书馆的第4行。
如果你需要定义一个返回类型(你不需要从语言的角度来看),那么使用你实际返回的返回类型。
这将是cts:search()
的结果,&#34; as node()*
&#34;