V MarkLogic používame xdmp:invoke
funkciu dynamicky vykonať XQuery a prejsť niektorými parametrami. Existuje ekvivalent v systéme eXist-db, a ak áno, mohol by ste to poskytnúť napríklad?
odpovede:
4 pre odpoveď č. 1Existuje niekoľko spôsobov, ako to urobiť v eXistu, v závislosti od toho, čo sa snažíte dosiahnuť jedným spôsobom, môže byť lepší ako iný.
1) Hodnotenie externého dotazu:
util:eval(util:base64-decode(util:binary-doc("/db/other.xqy") cast as xs:string))
2) Dynamický import externého modulu do kontextu:
util:import-module("http://my-other-module-ns", "other", "/db/other.xqy"),
util:eval("other:some-function("hello")")
UPDATE
Dôležitý doplnok od Wikibook XQuery:
Keďže menný priestor je deklarovaný dynamicky, importované funkcie musia byť vyvolané pomocou util: eval.