/ / Dynamiczne wywoływanie XQuery w eXist-db jak w MarkLogic - marklogic, exist-db

Dynamiczne wywoływanie XQuery w eXist-db jak w MarkLogic - marklogic, exist-db

W MarkLogic używamy xdmp:invoke funkcja do dynamicznego wykonania XQuery i przekazania niektórych parametrów. Czy w eXist-db jest odpowiednik, a jeśli tak, proszę podać przykład?

Odpowiedzi:

4 dla odpowiedzi № 1

Istnieje wiele sposobów, aby to zrobić w eXist, w zależności od tego, co próbujesz osiągnąć, jeden sposób może być lepszy niż inny.

1) Ocena zapytania zewnętrznego:

util:eval(util:base64-decode(util:binary-doc("/db/other.xqy") cast as xs:string))

2) Dynamiczne importowanie zewnętrznego modułu do kontekstu:

util:import-module("http://my-other-module-ns", "other", "/db/other.xqy"),
util:eval("other:some-function("hello")")

AKTUALIZACJA

Ważny dodatek od Wikibook XQuery:

Ponieważ przestrzeń nazw deklarowana jest dynamicznie, importowane funkcje należy wywoływać za pomocą util: eval.