[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 ----
- [EMAIL PROTECTED] working on Xalan integration, testing, coordination.
- [EMAIL PROTECTED] working on XSLTC integration and design merging.
- Lionel Villard <[EMAIL PROTECTED]>, created the original rwapi_xpath implementation, focusing on AST and tooling needs.
- [EMAIL PROTECTED], 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


Reply via email to