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

Marklogic 尝试将转换应用于搜索结果时出错,marklogic,marklogic-8,Marklogic,Marklogic 8,编辑:我做了更多的调试,当我试图安装转换而不是使用转换时,实际上会抛出该错误。但是,当我搜索数据库时,我可以在那里找到脚本 我使用的是JavaAPI和Marklogic版本8 我编写了一个xquery转换,用于在搜索检索文档时修改文档。我在查询控制台中编写了它,验证了它是否符合我的要求,但现在我将它保存在一个文件中,并试图在我的应用程序中使用它,因此出现以下错误: 服务器消息:RESTAPI-INVALIDCONTENT:(错误:FOER0000)无效内容:无效的xml_to_字符串扩展:xml

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

我使用的是JavaAPI和Marklogic版本8

我编写了一个xquery转换,用于在搜索检索文档时修改文档。我在查询控制台中编写了它,验证了它是否符合我的要求,但现在我将它保存在一个文件中,并试图在我的应用程序中使用它,因此出现以下错误:

服务器消息:RESTAPI-INVALIDCONTENT:(错误:FOER0000)无效内容:无效的xml_to_字符串扩展:xml_to_字符串不是有效的模块,或者在命名空间中未提供扩展函数(转换)

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

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)
          )

        }
      }
    }
  )
};
xquery版本“1.0-ml”;
模块名称空间xmlTrans=
"http://marklogic.com/rest-api/transform/xml_to_string";
声明函数xmlTrans:xmlToString(
$context作为映射:映射,
$params作为映射:映射,
$fullDoc作为文档-节点()
)作为文档-node()
{
如果(fn:empty($fullDoc/*)),则$fullDoc
否则(
让$root:=$fullDoc/*
让$contentArray:=$root/contents
返回文件
{
元素{fn:name($root)}
{
$root/@*,$root/element()[fn:not(fn:name(.)eq“contents”)],
元素含量
{
对于$contentArray/content中的$contentEle
返回(
如果($contentEle/@type=“paragration”),则({xdmp:quote($contentEle/paragration/*))
其他($contentEle)
)
}
}
}
)
};

我的语法中是否有什么错误阻止Marklogic将其识别为转换?

REST API扩展遵循一种约定而非配置方法

转换扩展必须包含名为“transform”的函数--请参阅:

另外,RESTAPI即使检测到错误也会安装扩展


希望能澄清这一点,

我花了数小时在文档和谷歌上,但不知何故错过了这一点。我想尖叫。非常感谢。