A .NET/C# system receives XML messages for processing and further transmission.
Since working directly on XML documents would be very inconvenient, it is necessary to deserialize the message to a C# object and then serialize just before delivery.
Up until now this has been done with Microsoft's XSD tool (xsd.exe) and it gets the job done, but poorly. The tool is old and buggy and generates outrageous class names and code representations of the various XML schema constructs.
Are there better ways to accomplish this in .NET, or should I go a whole other way about it?