我可以使用EclipseXQDT调试Marklogic模块/xquery吗?

我可以使用EclipseXQDT调试Marklogic模块/xquery吗?,eclipse,marklogic,Eclipse,Marklogic,嗨,外面的记录员们 我现在和Marklogic一起工作了几个月,在ML应用服务器上开发xquery、模块、应用程序等。我经常使用eclipse,我已经为几个Marklogic服务器安装并运行了XQDT。我们也使用控制台 我错过的是调试功能。。。在带有XQDT的eLispe中,我无法使调试功能正常工作 我需要的是一种快速测试和开发模型和函数的好方法。。。 这是ML示例文档中的基本库: xquery version "1.0-ml"; module namespace lib = 'http://

嗨,外面的记录员们

我现在和Marklogic一起工作了几个月,在ML应用服务器上开发xquery、模块、应用程序等。我经常使用eclipse,我已经为几个Marklogic服务器安装并运行了XQDT。我们也使用控制台

我错过的是调试功能。。。在带有XQDT的eLispe中,我无法使调试功能正常工作

我需要的是一种快速测试和开发模型和函数的好方法。。。 这是ML示例文档中的基本库:

xquery version "1.0-ml";

module namespace lib = 'http://www.example.com/lib';

declare function lib:user()
{
xdmp:get-current-user()
};
这是我在eclipse中的XQDT项目,我在本地设置了一个marklogic XDBC服务器,它工作正常

现在,我想在eclipse中的XQDT项目中再次从文件中使用上述模块。但无需将模块上传至db等步骤:

(: XQuery main module :)

import module namespace lib = 'http://www.example.com/lib' at 'lib.xq';

lib:user() 
给出:

XDMP-MODNOTFOUND: (err:XQST0059) Module /lib.xq not found
问题1:是否有一种方法可以在不将模块放入模块根目录的情况下查找模块?在文档中,它说我可以从一个XQDT项目中找到一个模块,但我无法让它工作

问题2:我可以对本地Marklogic服务器执行任意xquery,但如果我在XQDT项目的xgy文件中的任何位置设置调试标志,并按下调试按钮,我会弹出一个对话框,说明调试引擎配置不正确。有人能向我解释一下在EclipseXQDT中是否可以使用带有MarkLogic7的调试选项吗? 问候,


雨果(hugo)

最好将自己的问题限制在每个SO帖子一个以内。毕竟你只能接受一个答案

现在,我想在XQDT中再次从文件中使用上述模块 eclipse中的项目。但无需进入上传模块的步骤 到db等

这是个问题。您可以直接计算特殊查询。但是,如果它引用库模块,则该库模块需要可供服务器使用。无论如何,你迟早都要把它复制到服务器上,所以要早点做。我自己不使用IDE,但您不能设置它来为您实现这一点吗

问题1:是否有一种方法可以在不将模块放入模块根目录的情况下查找模块

不是在最广义的模块根中,不是。在上的文档讨论了这是如何工作的。无论如何,您需要使库模块可供MarkLogic使用


我不能回答你的最后一个问题。我不使用IDE,即使我使用了,我可能也不会使用调试器。相反,我将xdmp:log消息记录到ErrorLog.txt,偶尔我会在代码中植入一个类似于错误调用的断点。

ok,那么除了文本编辑器之外,您还使用其他工具吗?对于python开发工作,我经常使用eclipse,我无法想象不使用调试器,所以我认为这些工具在开发xquery代码方面会有很大帮助…?默认情况下,xquery变量是不可变的。这使得对程序流进行推理变得更加容易,因为您不必担心函数在背后改变程序状态。所以我通常只需要一个文本编辑器xdmp:log和偶尔的fn:error。它有助于使用强类型和遵循其他良好实践:并且可能会有所帮助。