As a new Mapnik release 0.5.0 is not far away, it is a good time to present some very nifty new features. There are quite a few of them and each one deserves a news item, but today I'd like to introduce Managing large XML files in Mapnik - a long-awaited feature which brings sanity (parameterization,re-usability,readability) into the domain of managing complex maps aka OSM. While I mention OSM as an example, the same techniques can be applied to any map.
Last year, shortly after Mapnik was deployed to render tiles for OpenStreetMap and users started adding new styles to the osm.xml file, it become apparent that editing map definition is not a trivial task. I saw this problem coming but at the time I didn't have a good solution. I just blamed XML for being designed for machines and not humans, which is true of course, but...Well, it turned out that some lesser known (advanced) XML features can be used to greatly improve the situation. Thanks to David Siegel, for implementing support for libxml2 parser in Mapnik and also for writing HOWTO which is a great starting point.
P.S. I just modified my local osm.xml to use external entities for things like database connection parameters and I really like it!
Happy New Year!