blob: 689ec968b138b30cff64bc8e41e6bb4ac6e4d50e [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>XPath 2.0 API Implementation</title>
</head>
<body>
<p>Public interfaces for XPath expression Abstract Syntax Tree nodes.
Primary external APIs for this XPath AST model.</p>
<p>This XPath API is a compact set of Java interfaces that allow to
encode and handle XPath 2.0/XQuery 1.0 expressions (although only XPath
2.0 expressions are currently supported except for the let expression).
It was designed to fulfill
the following requirements:</p>
<ul>
<li style="font-weight: bold;">Read/Write: <span
style="font-weight: normal;">capability of visiting and modifying the
internal representation of expressions. The expression reading is
performed by using either the visitor pattern or get-like methods.
Similarly, the</span><span style="font-weight: normal;"> expression </span><span
style="font-weight: normal;">writing is done through a bunch of
set-like methods.</span></li>
<li style="font-weight: bold;"><span style="font-weight: normal;"><span
style="font-weight: bold;">Round-trip: </span>capability of getting
string representation of expressions from its internal encoding.<br>
</span></li>
<li><span style="font-weight: bold;">Application-independent</span>:
it should be suitable to be used by a variety of applications
efficiently.<span style="font-weight: bold;"> </span>It should provide
solutions to plug in application-dependent features, like
namespace/qname manager and AST generalization and specialisation (see
implementation package).<span style="font-weight: bold;"><br>
</span></li>
<li style="font-weight: bold;">Compactness: <span
style="font-weight: normal;">keep the interface set as minimal as
possible by factoring similar concepts. The best example is the
interface OperatorExpr which allows to represent more than ten
expression types.</span></li>
</ul>
Right now, the XPath API do not provide a standard way to evaluate
expressions. This should be done.<br>
<p></p>
</body>
</html>