Processor proc = new Processor(); XQueryCompiler c = proc.newXQueryCompiler(); XQueryEvaluator q = c.compile($query).load(); List<XdmItem> urls = new ArrayList(); for (url : inputUrls) { urls.append(new XdmAtomicValue(url); } q.setExternalVariable(new QName("urls"), new XdmValue(urls)); q.setDestination(...) run();
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()); } }
XQueryCompiler compiler = saxon.newXQueryCompiler(); XQueryExecutable exec; exec = compiler.compile(new File("E:\\abc.xqy"));