尝试将转换应用于搜索结果时出错

Errors when trying to apply transform to search results

编辑: 我做了更多的调试,当我尝试安装转换而不是使用它时,实际上会抛出该错误。但是,当我搜索我的数据库时,我可以在那里找到脚本。

我正在使用 Java API 和 Marklogic 版本 8。

我编写了一个 xquery 转换来修改通过搜索检索到的文档。我在查询控制台中写了它,验证它做了我想要的,但现在我把它放在一个文件中并试图在我的应用程序中使用它,我收到以下错误:

Server Message: RESTAPI-INVALIDCONTENT: (err:FOER0000) Invalid content: invalid xml_to_string extension: xml_to_string either is not a valid module or does not provide extension functions (transform) in the http://marklogic.com/rest-api/transform/xml_to_string namespace

关于如何安装和使用转换,我几乎一字不差地遵循了文档,所以我不太确定问题出在哪里,除了可能在脚本本身。代码如下:

xquery version "1.0-ml";
module namespace xmlTrans =
  "http://marklogic.com/rest-api/transform/xml_to_string";

declare function xmlTrans:xmlToString(
  $context as map:map,
  $params as map:map,
  $fullDoc as document-node()
) as document-node()
{
  if(fn:empty($fullDoc/*)) then $fullDoc
  else (
    let $root  := $fullDoc/*
    let $contentArray := $root/contents
    return document
    {
      element {fn:name($root)}
      {
        $root/@*, $root/element()[fn:not(fn:name(.) eq "contents")],
        element contents
        {
          for $contentEle in $contentArray/content

          return(
            if($contentEle/@type = "paragraph") then (<content type="paragraph"><paragraph>{xdmp:quote($contentEle/paragraph/*)}</paragraph></content> )
            else ($contentEle)
          )

        }
      }
    }
  )
};

我的语法是否有问题导致 Marklogic 无法将其识别为转换?

REST API 扩展遵循约定优于配置的方法。

转换扩展必须包含一个名为 "transform" 的函数——参见:

http://docs.marklogic.com/guide/rest-dev/transforms#id_17421

此外,REST API 即使检测到错误也会安装扩展。

希望澄清,