XSD.exe, included with the MS SDK, can do a lot. Just search on google. I use it to convert a XSD to a .NET class wrapper.
The problem: Collections of elements are implemented as a standard array(). This means, reading out XML data is easy using the class wrapper, but adding / removing elements to the array is a problem.
Posted by rheenen