I would agree, as with most xml and web service developers, that schema and service versioning is a major pain in the ass. In this post by Tim Ewald, he discusses a way to approach this by using a more in-depth approach to validation. The way most of us approach this is simply by throwing the document up against latest known schema, and, if it errors, then the data must be invalid. Well, as well all know, that is usually not the case. Most likely, the document may have been created with a different version and simply contain some minor variations, which, in the end, may not even apply to the data we care about. In those scenarios, his solution suggests that we just get a little more detailed with our validation process...basically ignoring elements we dont understand or care about during validation, and only hiccup a validation error to the sender when its obvious that required data is missing. To my surprise, this type of, per element, validation meta data, is already built into the xsd specification and should be supported by xml processors in .net. I'll definitely look forward to checking out his implementation when he posts the code.