XSLT-based template engine