You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@xalan.apache.org by Shane Curcuru <sh...@yahoo.com> on 2003/02/21 01:04:28 UTC

[xslt20][xpath] Overview of upcoming XPath AST work

[Note: the xslt20 branch is *not* the main trunk code that's going forward 
to the 2.4.x builds, so if you're only concerned with the current work, you 
can ignore most "[xslt20]" messages]

This is just a heads up to Xalanites watching the xslt20 branch (which is 
future code for our implementation of the XSLT 2.0 and XPath 2.0 specs), 
about our work on the stylesheet construction end of Xalan.  Namely, we're 
working on getting the code in the xpath_rwapi area more complete, and then 
will plan to use that as the base for our XSLT and XPath building in Xalan 
in the future.  I'll outline the very basic plan now, and you'll be hearing 
a lot more from us soon on xalan-dev.

---- Task scope ----
Implement new Stylesheet parsing and construction engine for both XSLTC and 
Xalan, using a common Abstract Syntax Tree to represent the 
stylesheet.  Provide tooling API's to manipulate the AST itself.  Integrate 
all of this into the Xalan and XSLTC runtimes in the xslt20 branch (only).

---- Lead Developers ----
- Shane_Curcuru@yahoo.com working on Xalan integration, testing, coordination.
- Santiago.PericasGeertsen@sun.com working on XSLTC integration and design 
merging.
- Lionel Villard <vi...@us.ibm.com>, created the original rwapi_xpath 
implementation, focusing on AST and tooling needs.
- Ramesh.Mandava@sun.com, working on XSLTC side and other spec integration.

And of course the unseen hand of Scott (Boag), as always.

---- Current Status ----
The xpath_rwapi directory includes a prototype implementation of an XPath 
2.0 parser and AST based on a draft of the XPath 2.0 specification.  It is 
generated from the actual grammar in the spec by a system of stylesheets 
and a combination of jtree and javacc.  It is not complete, but you can 
construct XPath AST's in a limited way and we even have an automated test 
running (...qetest.rwapi.XPathASTTestlet on main trunk).

We're both planning our overall work and continuing to implement the 
complete XPath 2.0 AST now (well, as complete as the draft of the spec we 
have, of course).  We're also working out some design issues so that we can 
end up sharing the same interfaces, and hopefully partial implementations, 
of this in both XSLTC and Xalan.

We'll also be working on combining the Stylesheet or XSLT construction to 
also use a common AST with XPaths, so that we can represent the semantic 
meaning of a stylesheet in a single way at construction time.  Obviously 
the runtime implementations are different - either translet classes or 
interpreted code - but we hope to take this opportunity to share much much 
more code between the two halves of our project.

Hopefully we can do much of this work happily in parallel with other major 
changes on the xslt20 branch... although at some point, we may need a 
period of integration.


Comments welcome of course; I'll have some more detailed 
questions  available in a few days including some specific 'user polls' 
about how folks use extensions and what-not in the current Xalan.  Two 
areas we may need to change designs on are how we handle namespaces 
internally and what root classes the AST derives from (Xalan uses the w3c 
Node; XSLTC uses it's own generic Node-like stuff).

Reminder: this work only affects the xslt20 branch, not the main 
development trunk or any 2.x builds.

- Shane