Re: I have implemented SAX based XPath Engine
see my response inlined;
On Thu, Feb 19, 2009 at 10:28 PM, Michael Kay <mike@s...> wrote:
Yes. It is done using pure streaming way. There is no in-memory tree for any element is created, otherwize it would defeat the main purpose of XMLDog.
In this example, when pub startElement is called, I catch the path of element say /root/pub. I call this as delayed evaluation which needs to qualified by the evaluation result of its predicate. the predicate [book/name and book/author] would be evaluated by the time i get endelement of pub. so when endelement of pub is notified, i know whether "/root/pub" has passed the predicate or not.
XMLDog do supports absolute paths in predicate also. for example:
/*/fibonacci[ count(/*/fibonacci) - 1 ]
Yes. it supports [last()-1] also;
For your information it also supports position() and last() with a predicate. for example:
/*/fibonacci[@index>5][position()>5 and position() < last()]
I mean XPath 1.0;
recently i added following support also (you need to build from sources for below features):
1: supports XPathVariableResolver & XPathFunctionResolver.
2: support for union. for example:
//shipTo | //billTo | //item | //items/*
currently it doesn't support FilteredExpr i.e (/root/pub[book/name]/book[@id=234])
and pathExpr i.e (/a/b | /a/c)/d/e
They will be implemented in future. I am planning to support following-sibling and preceding-sibling also in near future;
Yes. currently XMLDog doesn't support it;
for xpaths which don't need delayed evaluation (i.e without predicates having downward selection), it would be possible to pass SAX events to another pipeline.
for xpaths with downward selection, user can do the sax parsing second time and register sax handler for interesed nodes.
currently it is not planned. Will try if someone is interesed;
currently XMLDog performs 1.24x faster than Xalan. There is still room for performance. I have tested memory consumption using netbeans profiler. it is quite low.
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format