Wednesday 28 November, 2012
Since putting the Arabica source up on GitHub there seems to have been a little surge in interest in it. It might be coincidence, of course, but I've received several emails and patches of the past few weeks. Once of those emails prompted me to do something I'd been putting off - parameterise the XSLT engine on string type. All the rest of the library is as string type agnostic as I could make it, allowing you to plug in std::string, std::wstring, or whatever other string class you might fancy. (In testing, I actually use a string type with no public member functions.) The XSLT engine was the last hold out, but no more and for the better.
If you've been using the XSLT engine what this means is that where you wrote
Arabica::XSLT::StylesheetCompiler compiler = ... std::auto_ptr<Arabica::XSLT::Stylesheet> stylesheet = ...you now have to write
Arabica::XSLT::StylesheetCompiler<std::string> compiler = ... std::auto_ptr<Arabica::XSLT::Stylesheet<std::string> > stylesheet = ...If you haven't been using the XSLT engine because the rest of your application uses std::wstring, then now there's nothing to stop you. Dive in!
Changes and Bug Fixes
- Expand entity references
- getLineNumber/getColumnNumber return size_t
- handle [dtd] pseudo-entity correctly
- various, mostly obscure, DOM conformances fixes
- XSLT engine is now, like the rest of Arabica, parameterised on string type
Build and installation
- Solution and project files for Visual Studio 2012 are provided
- Donated CMake build files included