The fifth version of this site was constructed using mod_perl and XML / XSLT on Apache 2.x.  We used the Gnome libXML / libXSLT libraries.

The Apache 2.x / mod_perl 2.x combination allowed us to separate data from formatting.  The main response handler was used to generate XML representing any data items on the page and context information including bread crumbs and menus.  An output filter then acquired an appropriate XSLT stylesheet from disk which was used to process the XML into XHTML output.

This separation of data and formatting is extremely pleasing.  In addition, finally getting use mod_perl is quite pleasant.  While we have a love / hate relationship with XSLT (it's almost a joy to use) it is quite powerful and saves a lot of overly specific Perl coding.

The downside of this transition is having to rewrite the templates yet again.  However, XSLT is quite widely used and supported now, and it was simple to write a script to yank the core content out of the existing pages and put it into stylesheets.  This saved a lot of time.

This version of the software was launched in 2007.