EXSLT.NET progress

| 2 Comments | No TrackBacks

Lots of activity in the EXSLT.NET project recently. We implemented more functions such as random:random-sequence(), str:encode-uri() and str:decode-uri(). Lots of bugs have been fixed. Support for time zone in date-time functions has been implemented. We switched to Visual Studio .NET 2003 so simplifying our custom build process. Currently I'm writing unit tests for each function (and we have something about 80 of functions already!). After I finish it up I'm going to update documentation and release EXSLT.NET 1.2, so stay tuned.

Btw, I was thinking about adding some simple function for dynamic XPath evaluation. Of course we have no chance to implement dyn:evaluate() as extension function in .NET, but we could provide some simplified proprietary version, e.g.

object dyn2:evaluate(node-set, string)
where first argument is context node and second one is XPath expression (as string) to evaluate. This would allow to build and evaluate XPath expressions on the fly, the feature XSLT 1.0 doesn't and XSLT 2.0 won't support. It's gonna be limited of course - no variables, no keys etc., but anyway. Would you like to have such function in EXSLT.NET?

PS. I know, it smells provocatively, but it should attract more users to EXSLT.NET library.

Related Blog Posts

No TrackBacks

TrackBack URL: http://www.tkachenko.com/cgi-bin/mt-tb.cgi/292


Well, sure I knew you answer :)

Of course it's not something highly required. XSLT is doing quite well without dynamic XPath.
As far as I can see it's mostly needed by newbies and it's bad idea to encourage them to follow this unnatural for XSLT way.

But on contrary, EXSLT has defined that function, Xalan and libxslt has implemented it, Saxon has similar saxon:evaluate() etc. So why not EXSLT.NET?

You probably know my answer: No.

I simply don't remember a single case where I really needed such functionality.

Certainly, a simple dyn:evaluate can be implemented (and I have done this myself as an exercise two years ago), but who will use it?

Also, it will make the language even more complicated and the transformations more difficult to maintain and understand.

Just for a comparison -- Haskel doesn't have such dynamic evaluation feature (templates are quite a different thing) -- and the great Haskellers are doing well without it.



Leave a comment