/ / Dynamisches Aufrufen einer XQuery in eXist-db wie in MarkLogic - marklogic, exist-db

Dynamisches Aufrufen einer XQuery in eXist-db wie in MarkLogic - marklogic, exist-db

In MarkLogic verwenden wir xdmp:invoke Funktion, um eine XQuery dynamisch auszuführen und einige Parameter zu übergeben. Gibt es in eXist-db ein Äquivalent, und wenn ja, bitte geben Sie ein Beispiel an.

Antworten:

4 für die Antwort № 1

Es gibt mehrere Möglichkeiten, dies in eXist zu tun, je nachdem, was Sie zu erreichen versuchen.

1) Auswertung einer externen Abfrage:

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

2) Dynamisches Importieren eines externen Moduls in den Kontext:

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

AKTUALISIEREN

Wichtiger Zusatz von XQuery Wikibook:

Da der Namespace dynamisch deklariert wird, funktionieren die importierten Funktionen müssen mit util: eval aufgerufen werden.