开发者

how to set xquery context document in java using saxon 9.2he?

开发者 https://www.devze.com 2023-01-04 10:45 出处:网络
how do I execute a simple this xquery, such as this for $elem in /root/element() return $elem on an xml file using java without using fn:doc?

how do I execute a simple this xquery, such as this

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

on an xml file using java without using fn:doc?

I keep getting XPDY0002: The context item for axis ste开发者_如何学编程p child::element(xml, xs:anyType) is undefined

--the rundown: I need a simple solution to load an xml file, load an xquery and process


here is the simplest way I found to do it however I was hoping to use XQStaticContext to "bind" the contextDocument to the expression.

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);
0

精彩评论

暂无评论...
验证码 换一张
取 消