Как установить XQuery контекстного документа в Java с помощью Saxon 9.2he? - PullRequest
0 голосов
/ 24 июня 2010

как мне выполнить простой этот xquery, такой как этот

for $elem in /root/element()
return 
    $elem

в xml-файле с использованием Java без использования fn: doc?

Я продолжаю получать XPDY0002: элемент контекста для шага оси child :: element (xml, xs: anyType) не определен

- краткое изложение: мне нужно простое решение для загрузки XML-файла, загрузки xquery и обработки

1 Ответ

0 голосов
/ 24 июня 2010

вот самый простой способ, который я нашел, но я надеялся использовать XQStaticContext для «привязки» contextDocument к выражению.

XQDataSource ds = new SaxonXQDataSource();
XQConnection xqjc = ds.getConnection();
XQPreparedExpression xqje = xqjc.prepareExpression(new FileInputStream("xml\\foo.xquery"));

XMLInputFactory factory = XMLInputFactory.newInstance();
XMLStreamReader streamReader = factory.createXMLStreamReader(new FileReader("xml\\foo.xml"));

xqje.bindDocument(XQConstants.CONTEXT_ITEM,streamReader, xqjc.createDocumentType());

XQResultSequence xqjs  = xqje.executeQuery();

xqjs.writeSequence(System.out, null);
...