I've been exploring for the past week, trying to decide what XML/XSL
framework to use, and I would love an excuse to not go with Java (and go
with Python instead). It is for this reason that Sablotron is particularly
exciting for me. Unfortunately, it doesn't do everything I need quite yet,
and I have to start work next week. So I'm hoping I can get some idea of
what the future plans are.
My first question is about caching and performance, mentioned in a
different post today. My performance tests were disappointing, running
500-something milliseconds on a 25K XML and short XSL file, while someone
else's Xerces test ran 300-something ms (with caching for the XSL tree but
not the XML). I looked through the code, and it seemed that there was a
capability to cache or "refrain from forgetting" parse trees within a
Processor, but SablotProcess always creates new Process objects for each
execution. Perhaps I'll play around with making caching work...
My second question is about extension support. I need to figure out a way
to get my system of XSL files somehow instantiating objects and making
method calls for those objects. I don't want to do this with Cocoon-style
full language embedding, but figured I could do it with a few extra tags
in the XSL file, if there was support for expanding out XSL variable
references within the tags. So my question, for those who know the
architecture better than I, is: How hard would this be? Are there any
plans for it? Could I hack it in easily?