> > 1. What sort of queries can be handled with a streaming xpath processor?
* Location Paths **1. Without Predicates *Location paths without predicates can easily be processed on streaming XML. However, it's a little tricky when it comes to dealing with unions, since a tree has to be created from the xpath expressions so that xpath is processed in a single scan through the streaming XML; therefore, I think it might not be possible to handle these during the time frame of GSoC. *2. With Predicates* * * Predicates which involve other nodes are very hard to handle and this is still in a research stage. Anyway predicates which involve attributes can be processed on streaming XML without much trouble. The problem with unions remain same here as well. *Expressions* * * A similar problem as in the unions arise here if the expression consists of multiple location paths. All other expressions can be handled. I believe it's better not to concentrate on evaluating complex XPath expressions on streaming XML at this stage. I will keep these in mind when designing so that they could be implemented later. > 2. What needs to be changed in Axiom in order to implement this? If axiom stores all the data extracted from the XML there would be only a little advantage in having a streaming XPath engine, since the benefit would only be with processing XML sequentially and not on memory. So we need to stop storing everything. I don't think it's possible to prevent caching at the axiom level since data must somehow be allocated to the objects (nodes, elements, etc). Basically, parsed data must be freed after it is processed. So we can free the branches if there not relavent while evaluating the XPath; I haven't tested this, but I strongly believe this should be possible. > 3. How would you propose this changes be done? See above > Yes I do have an idea about the above since I've been talking to you off > the list. But I would like you to summarize your findings here so that > others who are involved with Axis2/C can provide their view. -- Varuna www.xvpj.net