Xquery 我们可以为与rewrite.xqy位于同一目录级别的文件定义模块名称空间吗?

Xquery 我们可以为与rewrite.xqy位于同一目录级别的文件定义模块名称空间吗?,xquery,marklogic,Xquery,Marklogic,我有一个与rewrite.xqy处于同一级别的文件,即它不存在于特定目录中。当我为它声明模块名称空间时,会出现以下错误- <error:message>Cannot evaluate library module</error:message> <error:format-string>XDMP-EVALLIBMOD: Cannot evaluate library module: 错误 <error:message>Cannot evalua

我有一个与rewrite.xqy处于同一级别的文件,即它不存在于特定目录中。当我为它声明模块名称空间时,会出现以下错误-

<error:message>Cannot evaluate library module</error:message>
<error:format-string>XDMP-EVALLIBMOD: Cannot evaluate library module: 
错误

<error:message>Cannot evaluate library module</error:message>
<error:format-string>XDMP-EVALLIBMOD: Cannot evaluate library module:
表示您正试图直接评估代码/模块,而不是导入它。 你是如何得到这个错误的? 对于xquery模块,您不能直接调用它,必须将其导入另一个文件(通常是您正在调用的文件)中

XQuery不允许单个文件同时作为主入口点和模块。 当你说它“工作正常”时,这是一个很好的停下来的地方。

错误

<error:message>Cannot evaluate library module</error:message>
<error:format-string>XDMP-EVALLIBMOD: Cannot evaluate library module:
表示您正试图直接评估代码/模块,而不是导入它。 你是如何得到这个错误的? 对于xquery模块,您不能直接调用它,必须将其导入另一个文件(通常是您正在调用的文件)中

XQuery不允许单个文件同时作为主入口点和模块。
当你说它“工作得很好”时,这是一个很好的停下来的地方。

当你定义一个模块名称空间时,你的模块应该是一个包含函数集合的模块。但是,您没有运行库模块。如果您尝试运行此代码,例如通过粘贴到QConsole,您将得到XDMP-EVALLIBMOD错误

预期将作为XQuery程序执行。删除模块命名空间module namespace adv=http://***//***/adv;,它将无误地执行


或者,您可以将代码作为库模块插入,并将逻辑作为函数体包含,然后将该模块导入主模块并调用该函数。

定义模块名称空间时,您的模块应该是包含函数集合的。但是,您没有运行库模块。如果您尝试运行此代码,例如通过粘贴到QConsole,您将得到XDMP-EVALLIBMOD错误

预期将作为XQuery程序执行。删除模块命名空间module namespace adv=http://***//***/adv;,它将无误地执行


或者,您可以将代码作为库模块插入,并将逻辑作为函数体包含,然后将该模块导入主模块并调用该函数。

如果您只是想让该名称空间在主模块中可用,请执行以下操作:声明名称空间adv=http://***/***/adv;。如果您只是想让该名称空间在主模块中可用,请执行以下操作:声明名称空间adv=http://***//***/adv;。