Wir haben einen ziemlich einfachen XQuery- und Groovy-Code wie folgt. Xquery-Code:
%Vor%Hier ist der Testcode, der versucht, ihn aufzurufen
%Vor%Dieser Fehler tritt bei der Ausführung auf:
verursacht durch: com.marklogic.xcc.exceptions.XQueryException: XDMP-LEXVAL: xs: QName ("element ()") - Ungültiger lexikalischer Wert "element ()" [Sitzung: user = admin, cb = {Standard} [ContentSource: user = admin, cb = {none} [provider: adresse = localhost / 127.0.0.1: 9001, pool = 1/64]]] [Client: XCC / 5.0-3, Server: XDBC / 5.0-3] Ausdruck: xs: QName ("element ()") um com.marklogic.xcc.impl.handlers.ServerExceptionHandler.handleResponse (ServerExceptionHandler.java:34) beim com.marklogic.xcc.impl.handlers.EvalRequestController.serverDialog (EvalRequestController.java:83) beim com.marklogic.xcc.impl.handlers.AbstractRequestController.runRequest (AbstractRequestController.java:84) beim com.marklogic.xcc.impl.SessionImpl.submitRequestInternal (SessionImpl.java:373) beim com.marklogic.xcc.impl.SessionImpl.submitRequest (SessionImpl.java:356) beim com.zynx.galen.dataaccess.MarkLogicUtilities.executeQueryWithMultipleXMLParameters (MarkLogicUtilities.groovy: 52) beim com.zynx.galen.repositories.ScopedInterventionService.getScopedInterventionsByCriteria (ScopedInterventionService.groovy: 20) ... 1 mehr
Jede Hilfe würde sehr geschätzt werden.
Ссылка hat die Antwort, denke ich:
Übergeben von Variablen mit Abfragen
Variablen können an Request-Objekte gebunden sein. Wenn eine Ausführungsanforderung wird an den Server mit Session.submitRequest (Request) alle ausgegeben Variablen, die aktuell an das Request-Objekt gebunden sind, werden mit und gesendet Als externe Variablen im Ausführungskontext im Server definiert.
Mit XCC können Sie XdmNodes und XdmSequences sowie XdmAtomic erstellen Werte. In den anfänglichen XCC-Release-Werten dieses Typs kann jedoch nicht als externe Variablen gebunden sein, weil MarkLogic Server dies noch nicht kann akzeptiere sie. Diese Funktion wird für eine zukünftige Version erwartet.
Da XdmNode
nicht unterstützt wird, nehme ich an, dass die Unterklasse XdmElement ebenfalls nicht unterstützt wird. Diese Klassen sind also nur für Antworten und nicht für Anfragen nützlich. Die Fehlermeldung könnte verbessert werden.
Sie könnten die XML-Zeichenfolge mit setNewStringVariable
übergeben und dann xdmp:unquote
in Ihrem XQuery-Modul aufrufen. Beachten Sie, dass xdmp:unquote
einen Dokumentknoten zurückgibt, so dass der /*
XPath-Schritt sein Wurzelelement liefert.