[xml] XPath 2, XSLT 2

First the good news: I've started working on implementing XPath 2 in libxml2 and XSLT 2 in libxslt. The first thing I've tackled in XPath 2 is sequences. The library can now parse the following expressions and returns the correct result:

count(("a", "b", "c"))            := 3
count(("a", 2, 3.0, "d"))           := 4
count(/)                                        := 1
count(/*)                                       := 1
count((/*))                             := 1
count((/, /*))                          := 2
count((//p, //chapter))         := 7

xmlSequence has been added as an object type, in addition to the existing types, including xmlNodeSet and value tree. The reason for this is to maintain backward-compatibility (which is require for XSLT backward-compatible processing mode). The existing XPath APIs implement XPath 1 syntax and semantics. I've added a new API to create an XPath parser with XPath 2 syntax. This means that existing applications will need to be updated to use XPath 2; by default they will continue to use XPath 1.

On the XSLT 2 front I've started work on implementing xsl:for-each- group. Of the four grouping algorithms the first to be implemented will be group-adjacent. From the work I've done with XSLT 2 so far, this feature is one of the most profound improvements over XSLT 1, so there will be a lot of bang for the buck.

Now for the not bad, but interesting news! Since no one else is volunteering their time to do this work, I've decided to see if anyone will volunteer their money instead. I've setup a project within my company to undertake this development and to fund it we are offering a suite of professional services. You can read more details about this at http://www.explain.com.au/libx/.

When the XPath 2 and XSLT 2 implementation has been completed all of that code will be contributed back to the Gnome libxml2/libxslt project. In the meantime, to get early access to the code you can sign- up for our Professional Developers Programme, see http://www.explain.com.au/libx/programmes.html . You can join as an individual, or businesses can join up to get access for multiple employees. The more people and businesses join up, the more resources I'll have to further work on the XPath 2/XSLT 2 implementation.

Reporting on progress to the general community with messages like this one will be irregular. However, there will be a regular and detailed reports to members of the Professional Developers Programme.

Once the implementation is complete I'm planning on going further by creating a product that offers features beyond those in the XPath and XSLT standards. This will include transparent features, such as performance optimisations, as well as custom extensions. I'll know the code pretty well by then, so providing professional services, such as support, customisations and application development, won't be too difficult.

I hope the community finds my approach to funding this work acceptable. If you don't like it, then feel free to send me a message (preferably along with an offer to help). If you don't mind it but don't have the money then feel free to send a message of encouragement (and tell your friends and neighbours to sign up ;-).

Steve Ball

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]