我有一个与rewrite.xqy存在于同一级别的文件,即它不存在于特定目录中。当我为它声明一个module namespace时,我得到了以下错误-
<error:message>Cannot evaluate library module</error:message>
<error:format-string>XDMP-EVALLIBMOD: Cannot evaluate library module: 这背后的逻辑是什么?当我删除module namespace时,它工作得很好。这些是我的文件的开始行-
xquery version "1.0-ml";
module namespace adv = "http://***/***/adv";
import module namespace search = "http://marklogic.com/appservices/search"
at "/Marklogic/appservices/search/search.xqy";
'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">',
xdmp:set-response-content-type("text/html; charset=utf-8"),
<html xmlns="http://www.w3.org/1999/xhtml">发布于 2017-02-26 05:16:38
当您定义一个模块命名空间时,您的模块应该是一个具有函数集合的library module。不过,你不能“运行”一个库模块。如果您尝试运行此代码,例如,通过粘贴到QConsole中,您将得到XDMP-EVALLIBMOD错误。
预计将作为XQuery程序执行main module。删除模块名称空间module namespace adv = "http://***/***/adv";,它将不会出错地执行。
或者,您可以将代码作为库模块插入,并将逻辑封装为函数体,然后将该模块导入主模块并调用该函数。
发布于 2017-02-26 05:01:52
错误
<error:message>Cannot evaluate library module</error:message>
<error:format-string>XDMP-EVALLIBMOD: Cannot evaluate library module:意味着你正在尝试直接评估你的代码/模块,而不是导入它。你是如何得到这个错误的?对于xquery模块,不能直接调用它,必须将其导入到另一个文件中(通常是您正在调用的文件)。
XQuery不允许单个文件既是主入口点又是模块。当你说它“工作得很好”时--这是一个很好的停止的地方。
https://stackoverflow.com/questions/42460452
复制相似问题