XQuery XML-Element als externe Variable an Marklogic über XCC übergeben

8

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.

    
Irina Muchnik 16.11.2012, 18:37
quelle

1 Antwort

7

Ссылка 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.

%Vor%     
mblakele 16.11.2012, 21:30
quelle

Tags und Links