BaseElements has a new XSLT engine. Part 1 - Details.
As you may have known from previous notes on the website about FileMaker 11 and BaseElements, there were changes in FMP 11 to the XSLT engine inside FileMaker. The basic details are that FileMaker uses Xalan / Xerces as their XML / XSLT engines, and these were updated to the latest release with the new v11.
Normally point releases like this don't cause any issues with XSLT, except for one change which affected the way BaseElements recorded data. I've written a long post about the details in the FAQ on our website.
I'd like to detail some of how we've worked around these issues and the changes it has meant for BaseElements 3.
First of all, the big priority with BaseElements is import speed. Anything we can do to increase import time is a bonus.
In some rudimentary testing we did, we found that FileMaker imports data from csv files faster than from an XML file. It's about 20% faster on our test data sets, although real world data may be different. All except about 3 of the imports that we're doing could be transformed easily into csv imports if we have the ability to generate them from the DDR. The ones that can't be changed into csv are things like script steps and calculation, where only XML can retain formatting of things like the step text or the calculation details.
But although you can do an xsl transform on import into FileMaker, you must produce XML, the xsl must come from an external file, and you can't do a transform outside of the import step. So if we're going to do XML -> csv and then import we need to have our own xsl engine to do this. So we've written a new BaseElements plugin that incorporates the libxml2 and libxslt libraries. This means we can do the xslt processing in the plugin, generate a temp csv file and then import that. This gives us lots of control over our processing and allows us to potentially incorporate new features from future changes to the xsl libraries faster than if using the in built engine.
A bonus for anyone doing xslt work in FileMaker : we're going to release the plugin code as open source once we've got a final version. We'd love to see what others can do with this new feature in FileMaker too.