Today I have checked support for managed XSLT transformations into CVS. Currently, we use libxslt to preform XSLT transformations, however this solution does not allow advanced use, such as using custom XPathNavigators.
The new managed XSLT provider is written in C# and is designed to behave in a similar way to Microsoft's System.Xml.Xsl. Much of the XSLT 1.0 Recommendation has been implemented, however there is still a long way to go. Advanced elements such as xsl:number, xsl:fallback,and xsl:output are not fully supported.
Nonetheless, we are able to run tools such as MonoDoc, NUnit and corcompare without modification. I urge you to try out any existing stylesheets with the managed provider; I will be prioritizing what parts of XSLT I implement by the number of requests for support in the area. XSLT is a long way from being as good as other managed implementations such as Saxon and Xalan (Java) or Microsoft's C# XSLT implementation, however the parts we are missing are used only 10% of the time and will require 90% of the effort.
You can use the following steps to use the managed XSLT provider:
- Update System.Xml to the latest version from CVS. Changes are happening very quickly, bugs are fixed every hour, make sure you update.
- make; make install
- export MONO_MANAGED_XSLT=true
- <Run your code>
If you find any bugs, or would like a specific part of XSLT to be implemented, please feel free to e-mail me.
Ben Maurer
