@Override public String readDocument(String uri) throws XQException { String query = "declare namespace bgdb=\"http://bagridb.com/bdb\";\n" + "declare variable $uri external;\n" + "let $doc := bgdb:get-document-content($uri)\n" + "return $doc\n"; XQPreparedExpression xqpe = xqConn.prepareExpression(query); xqpe.bindString(new QName("uri"), uri, xqConn.createAtomicType(XQItemType.XQBASETYPE_ANYURI)); XQResultSequence xqs = xqpe.executeQuery(); String result = null; if (xqs.next()) { result = xqs.getItemAsString(null); } return result; }
@Override public void close() throws SQLException { XQConnection conn = getConnection(); if (!conn.isClosed()) { logger.info("close; XQC: {}", conn); try { conn.close(); } catch (XQException ex) { logger.error("close.error; " + ex, ex); throw new SQLException(ex); } } else { logger.debug("close; XQC is already closed: {}", conn); } }
public void removeSecCommand(long docId) throws XQException { XQExpression xqe = xqc.createExpression(); xqe.bindLong(new QName("docId"), docId, xqc.createAtomicType(XQItemType.XQBASETYPE_LONG)); xqe.executeCommand("removeDocument($docId)"); xqe.close(); } /*
XQSequenceType xqType = null; if (value instanceof Long) { xqType = xqconn.createAtomicType(XQItemType.XQBASETYPE_LONG); } else if (value instanceof String) { xqType = xqconn.createAtomicType(XQItemType.XQBASETYPE_STRING); } else if (value instanceof Boolean) { xqType = xqconn.createAtomicType(XQItemType.XQBASETYPE_BOOLEAN); } else if (value instanceof Date) { xqType = xqconn.createAtomicType(XQItemType.XQBASETYPE_DATETIME); } else if (value instanceof BigDecimal) { xqType = xqconn.createAtomicType(XQItemType.XQBASETYPE_DECIMAL); } else if (value instanceof Float) { xqType = xqconn.createAtomicType(XQItemType.XQBASETYPE_FLOAT); } else if (value instanceof URI) { xqType = xqconn.createAtomicType(XQItemType.XQBASETYPE_ANYURI); } else if (value instanceof QName) { xqType = xqconn.createAtomicType(XQItemType.XQBASETYPE_QNAME); } else if (value instanceof BigInteger) { xqType = xqconn.createAtomicType(XQItemType.XQBASETYPE_INT); } else if (value instanceof Integer) { xqType = xqconn.createAtomicType(XQItemType.XQBASETYPE_INTEGER); } else if (value instanceof Double) { xqType = xqconn.createAtomicType(XQItemType.XQBASETYPE_DOUBLE); } else if (value instanceof Byte) { xqType = xqconn.createAtomicType(XQItemType.XQBASETYPE_BYTE); } else if (value instanceof Node) { xqType = xqconn.createNodeType(); } else if (value instanceof NodeList || value instanceof XQSequence) { XQItemType xqItemType = xqconn.createNodeType();
XQStaticContext staticEnv = xqconn.getStaticContext(); xqconn.setStaticContext(staticEnv); Constants.XQUERY_FUNCTION_HANDLER_COMPILER, Constants.XQUERY_FUNCTION_HANDLER_RUNTIME); XQPreparedExpression exp = xqconn.prepareExpression(xquery); Item item = ((Value) value).asItem(); if (item == null) { exp.bindSequence(variable, xqconn.createSequence(Collections.EMPTY_LIST.iterator())); } else { XQItem item2 = new SaxonXQItem(item, saxonConn); nodeArray.add(nodeList.item(i)); value = xqconn.createSequence(nodeArray.iterator()); funcResolver, null); exp.bindItem(XQConstants.CONTEXT_ITEM, xqconn.createItemFromNode(contextNode, xqconn.createNodeType()));
@Override public Object makeObject() throws Exception { return connection.prepareExpression(xquery); }
"return $id\n"; XQPreparedExpression xqpe = xqc.prepareExpression(query); xqpe.bindString(new QName("uri"), "65538.xml", xqc.createAtomicType(XQItemType.XQBASETYPE_ANYURI)); xqpe.bindString(new QName("xml"), xml, xqc.createAtomicType(XQItemType.XQBASETYPE_STRING)); List<String> props = new ArrayList<>(4); props.add(pn_document_data_format + "=xml"); props.add(pn_document_collections + "=CLN_Custom, CLN_Security"); xqpe.bindSequence(new QName("props"), xqc.createSequence(props.iterator())); XQSequence xqs = xqpe.executeQuery(); if (xqs.next()) {
XQPreparedExpression expression = conn.prepareExpression(xQuery); QName[] extParameters = expression.getAllExternalVariables(); if(extParameters != null && extParameters.length > 0) { conn.close(); } catch (XQException e) { throw new MessagingException("Caught Exception while opening a connection to the datasource", e);
@ManagedOperation(description="Parse XQuery. Return array of parameter names, if any") @ManagedOperationParameters({ @ManagedOperationParameter(name = "query", description = "A query request provided in XQuery syntax"), @ManagedOperationParameter(name = "props", description = "Query processing properties")}) public String[] parseQuery(String query, Properties props) { XQPreparedExpression xqpExp = null; try { XQStaticContext ctx = xqConn.getStaticContext(); props2Context(schemaManager.getEntity().getProperties(), ctx); props2Context(props, ctx); xqpExp = xqConn.prepareExpression(query, ctx); QName[] vars = xqpExp.getAllExternalVariables(); String[] result = null; if (vars != null) { result = new String[vars.length]; for (int i=0; i < vars.length; i++) { result[i] = vars[i].toString(); } } xqpExp.close(); return result; } catch (XQException ex) { logger.error("parseQuery.error", ex); throw new RuntimeException(ex.getMessage()); } }
configuration.setHostLanguage(net.sf.saxon.Configuration.XQUERY); XQPreparedExpression exp = xqconn.prepareExpression(xquery); Node requestNode = DOMUtils.parse(request.newXMLStreamReader()); if (__log.isDebugEnabled()) { __log.debug("request " + request.toString()); exp.bindItem(XQConstants.CONTEXT_ITEM, xqconn.createItemFromNode(requestNode, xqconn.createNodeType())); XQResultSequence result = exp.executeQuery(); MockQueryResponseDocument response = MockQueryResponseDocument.Factory.parse(result.getSequenceAsStream());
transformer.bindAtomicValue(paramKey, o.toString(), connection.createAtomicType(XQItemType.XQBASETYPE_STRING)); transformer.bindBoolean(paramKey, ((Boolean) o).booleanValue(), connection.createAtomicType(XQItemType.XQBASETYPE_BOOLEAN)); transformer.bindByte(paramKey, ((Byte) o).byteValue(), connection.createAtomicType(XQItemType.XQBASETYPE_BYTE)); transformer.bindShort(paramKey, ((Short) o).shortValue(), connection.createAtomicType(XQItemType.XQBASETYPE_SHORT)); transformer.bindInt(paramKey, ((Integer) o).intValue(), connection.createAtomicType(XQItemType.XQBASETYPE_INT)); transformer.bindLong(paramKey, ((Long) o).longValue(), connection.createAtomicType(XQItemType.XQBASETYPE_LONG)); transformer.bindFloat(paramKey, ((Float) o).floatValue(), connection.createAtomicType(XQItemType.XQBASETYPE_FLOAT)); transformer.bindDouble(paramKey, ((Double) o).doubleValue(), connection.createAtomicType(XQItemType.XQBASETYPE_DOUBLE)); transformer.bindDocument(paramKey, new DOMSource(((Document) o).getFirstChild()), connection.createNodeType()); transformer.bindDocument(paramKey, new DOMSource((Node) o), connection.createNodeType()); transformer.bindNode(paramKey, (Node) o, connection.createNodeType());
public boolean searchSecQuery() throws XQException { String query = "declare default element namespace \"http://tpox-benchmark.com/security\";\n" + "for $sec in fn:collection(\"CLN_Security\")/s:Security\n" + "where $sec[SecurityInformation/*/Sector = 'Technology' and PE[. >= xs:decimal('25') and . < xs:decimal('28.0')] and Yield > xs:decimal('0')]\n" + "return <Security>\n" + "\t{$sec/Symbol}\n" + "\t{$sec/Name}\n" + "\t{$sec/SecurityType}\n" + "\t{$sec/SecurityInformation//Sector}\n" + "\t{$sec/PE}\n" + "\t{$sec/Yield}\n" + "</Security>"; XQExpression xqe = xqc.createExpression(); XQResultSequence xqs = xqe.executeQuery(query); int cnt = 0; while (xqs.next()) { cnt++; } System.out.println("Got " + cnt + " results"); return cnt > 0; }
/** * Removes any parameter bindings from the transformer, replacing them with empty strings * * @param transformer the transformer to remove properties from */ protected void unbindParameters(XQPreparedExpression transformer) throws XQException { // Replace transformation parameters with null values if (contextProperties != null) { for (Map.Entry<String, Object> parameter: contextProperties.entrySet()) { String key = parameter.getKey(); transformer.bindAtomicValue(new QName(key), "", connection.createAtomicType(XQItemType.XQBASETYPE_STRING)); } } }
cursor.close(); } else { XQStaticContext ctx = xqConn.getStaticContext(); props2Context(schemaManager.getEntity().getProperties(), ctx); props2Context(props, ctx); XQExpression xqExp = xqConn.createExpression(ctx); XQResultSequence xqSec = xqExp.executeQuery(query); result = extractResult(xqSec, props);
@Override public void close() throws XQException { xqConn.close(); }
transformer.bindDocument(new QName(SOURCE_DOCUMENT_NAMESPACE), new StreamSource(new ByteArrayInputStream((byte[]) src)), connection.createDocumentType()); transformer.bindDocument(new QName(SOURCE_DOCUMENT_NAMESPACE), new StreamSource((InputStream) src), connection.createDocumentType()); transformer.bindDocument(new QName(SOURCE_DOCUMENT_NAMESPACE), new StreamSource(new ByteArrayInputStream(((String) src).getBytes())),connection.createDocumentType()); transformer.bindNode(new QName(SOURCE_DOCUMENT_NAMESPACE), (Document) src, connection.createDocumentType()); transformer.bindNode(new QName(SOURCE_DOCUMENT_NAMESPACE), (Element) src, connection.createDocumentType()); transformer.bindNode(new QName(SOURCE_DOCUMENT_NAMESPACE), (Node) src, connection.createNodeType()); transformer.bindNode(new QName(SOURCE_DOCUMENT_NAMESPACE), dom, connection.createDocumentType());
XQStaticContext staticContext = xqconn.getStaticContext(); JaxpFunctionResolver funcResolver = new JaxpFunctionResolver( _compilerContext, out, source.getNamespaceContext(), _bpelNS); xqconn.setStaticContext(staticContext); XQPreparedExpression exp = xqconn.prepareExpression(out.xquery); funcResolver, null); exp.bindItem(XQConstants.CONTEXT_ITEM, xqconn.createItemFromNode(node, xqconn.createNodeType())); if (value.getClass().getName().startsWith("java.lang")) { exp.bindAtomicValue(variable, value.toString(), xqconn.createAtomicType(XQItemType.XQBASETYPE_ANYATOMICTYPE)); } else if (value instanceof Node) { exp.bindNode(variable, (Node) value, xqconn.createNodeType()); } else if (value instanceof NodeList) { NodeList nodeList = (NodeList) value; nodeArray.add(nodeList.item(i)); XQSequence sequence = xqconn.createSequence(nodeArray.iterator()); exp.bindSequence(variable, sequence);
public void insertSecQuery() throws XQException { String query = "declare namespace s=\"http://tpox-benchmark.com/security\";\n" + "declare variable $sec external;\n" + "declare variable $uri external;\n" + "fn:put($sec, $uri)\n"; XQPreparedExpression xqpe = xqc.prepareExpression(query); //xqpe.bindNode(new QName("sec"), "IBM", null); xqpe.bindString(new QName("uri"), "/library/20", null); xqpe.executeQuery(); //System.out.println(xqs.getAtomicValue()); }
try { connection = getConnection(); expression = connection.prepareExpression(xQuery); expression.bindNode(XQConstants.CONTEXT_ITEM, node, null); connection.close();
cursor.close(); } else { XQStaticContext ctx = xqConn.getStaticContext(); props2Context(schemaManager.getEntity().getProperties(), ctx); props2Context(props, ctx); XQPreparedExpression xqpExp = xqConn.prepareExpression(query, ctx); for (Map.Entry<String, Object> e: params.entrySet()) { xqpExp.bindObject(new QName(e.getKey()), e.getValue(), null);