Plan-X

Plan-X: XPath for XML Store

Overview

The general goal of this project is to equip XML Store with basic querying functionality; that is, provide an XPath query interface to XML Store. Thus, the focus is on implementing this XPath engine.

The paper describes a number of XPath evaluation algorithms and characterizes their time and space complexities. In particular, it is argued, that the most important characteristic of a practical XPath evaluation algorithm is that it uses at most linear space in the size of the XML document.

A simple and flexible API for the XPath engine is presented which allows for pluggable object models. In this way, the XPath engine is not closely coupled with XML Store and can easily be used with other object models.

The performance of the implemented XPath engine has been compared to that of Jaxen and Xalan. The tests show that the implemented XPath engine is faster than Jaxen and Xalan for worst-case queries, but a little slower with practical queries. It is conjectured that this is because only critical parts of the implementation have been optimized. Also, it is shown that the combination of the implemented XPath engine and XML Store allows for quering documents which are larger than what can reside in main memory.

Paper

Software

The file xpath.jar contains both source code and compiled code. java_cup.jar is needed to run it, and JLex.jar is needed to recompile the JLex source file.

People

Last updated: June 13, 2004 (tsa)