Last month, I blogged about XmlSerializer, and the constraints it imposes on the .NET types you'd like to map onto XML structure. I was recently reminded of another limitation of XmlSerializer: it doesn't let you switch your type mappings, on the fly -- for example, in response to a version attribute. And yet. A great many XML document formats use just such an attribute...
http://www.windojitsu.com/blog/moreonxmlserializer.html