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 № 1Istnieje 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.