2017-07-18 108 views
1

编辑︰我做了一些更多的调试,并且当我尝试安装转换,而不是使用它时,实际上会引发错误。但是,当我搜索我的数据库时,我可以在那里找到脚本。尝试将转换应用到搜索结果时的错误

我使用的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将其识别为转换?

回答

2

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

变换扩展必须包含一个名为函数“改造” - 看到:

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

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

希望澄清,

+0

我花了几个小时在文档和谷歌,不知何故错过了。我想尖叫。谢谢! –

+1

我们都去过很多次了。感谢坚持。 – ehennum

相关问题