2012-02-08 84 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