2012-02-08 87 views
3

不需要在emacs中编辑文件和在Marklogic查询控制台中做少量测试之间切换,我真的很想打开一个缓冲区,写一个XQuery,然后在Marklogic服务器上运行它。在虚拟机上运行。实际上,我认为完美的解决方案会导致类似于暂存缓冲区的地方,在那里你写一些elisp,然后打C-j来执行它。如何使用emacs在Marklogic数据库上运行xquery代码?

+0

为什么不在Emacs的交互式shell中运行你的客户端程序? – Sean 2012-02-08 19:44:52

+0

我不知道我明白。 Marklogic服务器在虚拟机上运行,​​查询控制台是某个通信通道的Web前端,用于在相关数据库上运行任意XQuery代码。我想要做的是从emacs内部执行这些查询。我没有客户端程序,除非我错过了一些东西。 – 2012-02-08 19:50:54

+0

我从来没有使用MarkLogic,但他们是否有现有的命令行工具或者可能是基于HTTP的API?包装来自Emacs的呼叫应该相当容易。 – 2012-02-08 20:09:32

回答

1

大多数情况下,我只是将我的代码移动到库中,然后从cq中导入这些库。但是您可以编写elisp,将您的查询通过HTTP发送到cq或QueryConsole eval.xqy模块,作为HTTP POST。

您也可以为您的浏览器使用textarea emacs界面,以便您可以通过emacs使用cq。

https://chrome.google.com/webstore/detail/ljobjlafonikaiipfkggjbhkghgicgoh

https://addons.mozilla.org/en-US/firefox/addon/its-all-text/

https://github.com/marklogic/cq

+0

这似乎是做一个POST到eval.xqy将是最简单的选择。 – 2012-02-08 20:59:16

1

调用eval.xqy通过HTTP @mblakele的建议是可能比较容易。但是,如果您想要更紧密地集成,则需要XCC库(Java/.Net; http://developer.marklogic.com/products/xcc/5.0),以及稍旧的libmlcc库(http://robbertbroersma.nl/blog/a-blog.html)。也许这些对你很有用。

+0

我想我会给eval选项一个去,但它看起来好像我将不得不在Marklogic方面做一些配置,所以它似乎是一个两步向前,三步后退的情况。 – 2012-02-08 21:05:53

+0

如果您有MarkLogic 5,则可以避免额外的配置。该版本包含查询控制台,其中包含一个'eval.xqy'。它位于MarkLogic安装目录下的Apps/qconsole/endpoints/eval.xqy下,这意味着它默认可用:例如http:// localhost:8000/qconsole/endpoints/eval.xqy – mblakele 2012-02-08 21:56:58