@Override public void process(final InputStream rawIn) throws IOException { try (final InputStream in = new BufferedInputStream(rawIn)) { XQueryEvaluator qe = slashExpression.load(); qe.setSource(new SAXSource(xmlReader, new InputSource(in))); DocumentBuilderFactory dfactory = DocumentBuilderFactory.newInstance(); dfactory.setNamespaceAware(true); Document dom = dfactory.newDocumentBuilder().newDocument(); qe.run(new DOMDestination(dom)); XdmNode rootNode = proc.newDocumentBuilder().wrap(dom); sourceRef.set(rootNode); } catch (final Exception e) { error.set(e); } } });
XQueryEvaluator qe = entry.getValue().load(); qe.setContextItem(sourceRef.get()); XdmValue result = qe.evaluate();
@Override public void process(final InputStream rawIn) throws IOException { try (final InputStream in = new BufferedInputStream(rawIn)) { XQueryEvaluator qe = slashExpression.load(); qe.setSource(new SAXSource(xmlReader, new InputSource(in))); DocumentBuilderFactory dfactory = DocumentBuilderFactory.newInstance(); dfactory.setNamespaceAware(true); Document dom = dfactory.newDocumentBuilder().newDocument(); qe.run(new DOMDestination(dom)); XdmNode rootNode = proc.newDocumentBuilder().wrap(dom); sourceRef.set(rootNode); } catch (final Exception e) { error.set(e); } } });
private String getSchemaTNS(XdmItem schema) throws SaxonApiException { XQueryEvaluator e = processor.newXQueryCompiler().compile("declare namespace xsd = \"http://www.w3.org/2001/XMLSchema\"; xsd:string(xsd:schema/@targetNamespace)").load(); e.setContextItem(schema); XdmValue v = e.evaluate(); if (v instanceof XdmEmptySequence) return null; else return v.toString(); }
Processor saxon = new Processor(false); saxon.registerExtensionFunction(new MyExtension()); XQueryCompiler compiler = saxon.newXQueryCompiler(); XQueryExecutable exec = compiler.compile(new File("input/names.xq")); XQueryEvaluator query = exec.load(); DocumentBuilder builder = saxon.newDocumentBuilder(); String students = "<xml>...</xml>"; Source src = new StreamSource(new StringReader(students)); XdmNode doc = builder.build(src); query.setExternalVariable(new QName("student_list"), doc); XdmValue result = query.evaluate();
// the Saxon processor object Processor saxon = new Processor(false); // compile the query XQueryCompiler compiler = saxon.newXQueryCompiler(); XQueryExecutable exec = compiler.compile(new File("yours.xqy")); // parse the string as a document node DocumentBuilder builder = saxon.newDocumentBuilder(); String input = "<xml>...</xml>"; Source src = new StreamSource(new StringReader(input)); XdmNode doc = builder.build(src); // instantiate the query, bind the input and evaluate XQueryEvaluator query = exec.load(); query.setContextItem(doc); XdmValue result = query.evaluate();
import javax.xml.parsers.DocumentBuilderFactory; import net.sf.saxon.s9api.*; import org.w3c.dom.Document; ... Document merge(Document context, Document other) throws Exception { Processor processor = new Processor(false); XQueryExecutable executable = processor.newXQueryCompiler().compile( "declare variable $other external; element {node-name(*)} {*/*, $other/*/*}"); XQueryEvaluator evaluator = executable.load(); DocumentBuilder db = processor.newDocumentBuilder(); evaluator.setContextItem(db.wrap(context)); evaluator.setExternalVariable(new QName("other"), db.wrap(other)); Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument(); processor.writeXdmValue(evaluator.evaluate(), new DOMDestination(doc)); return doc; }
@Test public void testFormatNumber() throws SaxonApiException { Processor proc = new Processor(true); XQueryCompiler comp = proc.newXQueryCompiler(); comp.setLanguageVersion("3.0"); XQueryExecutable exp = comp.compile("xquery version \"3.0\"; format-number(number('123.4'),'#.00000000')"); XQueryEvaluator qe = exp.load(); Serializer out = new Serializer(new StringWriter()); qe.run(out); for(XdmItem i : qe) { System.out.println(i.getStringValue()); } }
private XQueryEvaluator prepareEvaluation(QueryContext context, TransformErrorListener listener, XQueryExecutable xquery) { listener.setUserData(this); this.queryContext = context; XQueryEvaluator xqueryEvaluator = xquery.load(); xqueryEvaluator.setErrorListener(listener); if (context != null) { xqueryEvaluator.setContextItem((XdmItem) context.getContextItem()); if (context.getVariableBindings() != null) { for (Map.Entry<QName, Object> binding : context.getVariableBindings().entrySet()) { net.sf.saxon.s9api.QName saxonQName = new net.sf.saxon.s9api.QName(binding.getKey()); xqueryEvaluator.setExternalVariable(saxonQName, (XdmValue) binding.getValue()); } } } return xqueryEvaluator; }
/** * Evaluates an XQuery 1.0 expression using the Saxon s9api interfaces. * * @param source The XML Source. * @param query The query expression. * @param nsBindings A collection of namespace bindings required to evaluate * the query, where each entry maps a namespace URI (key) to a prefix * (value). * @return An XdmValue object representing a value in the XDM data model. * @throws SaxonApiException If an error occurs while evaluating the query * (this always wraps some other underlying exception). */ public static XdmValue evaluateXQuery(Source source, String query, Map<String, String> nsBindings) throws SaxonApiException { Processor proc = new Processor(false); XQueryCompiler xqCompiler = proc.newXQueryCompiler(); if (null != nsBindings) { for (String nsURI : nsBindings.keySet()) { xqCompiler.declareNamespace(nsBindings.get(nsURI), nsURI); } } XQueryExecutable xqExec = xqCompiler.compile(query); XQueryEvaluator xqEval = xqExec.load(); xqEval.setSource(source); return xqEval.evaluate(); }
XQueryEvaluator query = exec.load(); query.setContextItem(doc); XdmValue result = query.evaluate();
/** * Evaluates an XQuery 1.0 expression using the Saxon s9api interfaces. * * @param source * The XML Source. * @param query * The query expression. * @param nsBindings * A collection of namespace bindings required to evaluate the * query, where each entry maps a namespace URI (key) to a prefix * (value). * @return An XdmValue object representing a value in the XDM data model. * @throws SaxonApiException * If an error occurs while evaluating the query (this always * wraps some other underlying exception). */ public static XdmValue evaluateXQuery(Source source, String query, Map<String, String> nsBindings) throws SaxonApiException { Processor proc = new Processor(false); XQueryCompiler xqCompiler = proc.newXQueryCompiler(); if (null != nsBindings) { for (String nsURI : nsBindings.keySet()) { xqCompiler.declareNamespace(nsBindings.get(nsURI), nsURI); } } XQueryExecutable xqExec = xqCompiler.compile(query); XQueryEvaluator xqEval = xqExec.load(); xqEval.setSource(source); return xqEval.evaluate(); }
eval = exp.load();
@Override public Sequence call(XPathContext context, Sequence[] arguments) throws XPathException { String query = arguments[0].head().getStringValue(); Evaluator eval = SearchBase.getEvaluator(context); XQueryCompiler xqueryCompiler = eval.getCompiler().getXQueryCompiler(); xqueryCompiler.setErrorListener(eval.getErrorListener()); try { // TODO: cache compiled xslt somewhere XQueryExecutable xqueryExec= xqueryCompiler.compile(query); evaluator = xqueryExec.load(); evaluator.setErrorListener(eval.getErrorListener()); if (arguments.length > 1) { bindParameters(arguments[1]); } XdmValue result = evaluator.evaluate(); ArrayList<TransformerException> runtimeErrors = eval.getErrorListener().getErrors(); if (!runtimeErrors.isEmpty()) { throw new XPathException(runtimeErrors.get(0).getMessage(), runtimeErrors.get(0).getLocator(), runtimeErrors.get(0)); } return result.getUnderlyingValue(); } catch (SaxonApiException e) { throw new XPathException (e); } }
/** * Executes a given XQuery expression on the given XML. * @param xml is the XQuery data source * @param query is the query expression * @return with the query result as String * @throws SaxonApiException was thrown when the XQuery execution is failed */ public String evaluateXQuery(final String xml, final String query) throws SaxonApiException { Processor processor = processorFactory.createProcessor(); XQueryCompiler xqueryCompiler = processor.newXQueryCompiler(); xqueryCompiler.setErrorListener(errorListener); XQueryExecutable xqueryExec = xqueryCompiler.compile(query); XQueryEvaluator xqueryEval = xqueryExec.load(); xqueryEval.setErrorListener(errorListener); SAXSource requestXml = saxSourceFactory.createSAXSource(inputSourceFactory.createInputSource(xml)); xqueryEval.setSource(requestXml); ByteArrayOutputStream baos = byteArrayOutputStreamFactory.createByteArrayOutputStream(); Serializer ser = serializerFactory.createSerializer(baos); xqueryEval.setDestination(ser); xqueryEval.run(); return baos.toString(); } }
XQueryEvaluator evaluator = executable.load(); Config variables = getConfigs().getConfig(fragment, "externalVariables", ConfigFactory.empty()); for (Map.Entry<String, Object> entry : new Configs().getEntrySet(variables)) {
XQueryEvaluator evaluator = executable.load(); Config variables = getConfigs().getConfig(fragment, "externalVariables", ConfigFactory.empty()); for (Map.Entry<String, Object> entry : new Configs().getEntrySet(variables)) {
@BeforeMethod public void setUp() throws SaxonApiException { MockitoAnnotations.initMocks(this); given(processorFactory.createProcessor()).willReturn(processor); given(processor.newXQueryCompiler()).willReturn(xQueryCompiler); given(xQueryCompiler.compile(QUERY)).willReturn(xQueryExecutable); given(xQueryExecutable.load()).willReturn(xQueryEvaluator); given(inputSourceFactory.createInputSource(INPUT)).willReturn(inputSource); given(saxSourceFactory.createSAXSource(inputSource)).willReturn(saxSource); given(byteArrayOutputStreamFactory.createByteArrayOutputStream()).willReturn(outputStream); }
XQueryEvaluator xqeval = xqexec.load(); if (xproc.getHtmlSerializer() && "html".equals(serializer.getOutputProperty(Serializer.Property.METHOD))) { ContentHandler ch = null;
XQueryEvaluator xqeval = xqexec.load(); if (xproc.getHtmlSerializer() && "html".equals(serializer.getOutputProperty(Serializer.Property.METHOD))) { ContentHandler ch = null;