in reply to Re: Re: XML documentation formatting and transformations (boo)
in thread XML documentation formatting and transformations

A Perl-native XSLT processor does exists. Unfortunately it hasn't been fully compliant with XSLT 1.0 specs, and it is unacceptably slow. I recall someone said in perl-xml mailing list that it's even faster to spawn a Saxon process. I believe that XML::XSLT could be much better than it is now, since there are lots of very good XSLT processors written in Java, so I think it's more a choice of good algorithm and proper data structures rather than a language problem.

I've run XSLTMark on my own, comparing the XSLT 1.0 compliance and performance of Saxon (Java), Sablotron, LibXSLT, and Xalan C++. Sablotron 0.70 - the latest version at this moment - fails on several tests, which indicates that it isn't fully XSLT 1.0 compliant, and the performance is not impressive. The rest of them - LibXSLT, Saxon, and Xalan - are fully compliant. And among these, LibXSLT is undoubtedly the speed demon. Xalan is the second.

But if you're afraid that at some level of complexity you can't deal with XSLT alone (or it's too complicated to solve in XSLT, see Things XSLT Can't Do), you may try XML::Xalan, the perl binding to Xalan C++. It allows users to write an XSLT extension function in Perl. I know it lacks of several features, such as document validation, but currently it serves my need very well. Untested on Win32, though, just on Linux only.

  • Comment on Re: Re: Re: XML documentation formatting and transformations (boo)

Replies are listed 'Best First'.
Re: Re: Re: Re: XML documentation formatting and transformations (boo)
by John M. Dlugosz (Monsignor) on Nov 01, 2001 at 20:35 UTC
    Controlling easily from Perl and Perl extensions/callbacks whatever is what I meant by "Perl native". Sure, the whole thing's written in C with a XS binding, but the interface is Perl. As opposed to OLE, which is challenging at times and isn't designed with the Perl way of doing things. I was thinking of how much easier DBI is (in Perl syntax) than ODB.