I know that the web services don't do any sort of validation, and that I'll have to create a handler to do the validation in any event. I just want WSDL that makes sense and is tight as possible, but I'm starting to think that getting it as tight as I would like will be impossible (I'm a big fan of very explicit "contracts"). Implementing IXmlSerializable made the proxy generator (IDE and WSDL.exe) fail to generate anything for data types I tried to define myself. That means we'd have to give them assemblies for those classes or they'd have to write their own class. So I think going the attributes route is definitely the way to go again, and I'll just have to not expect too much from the WSDL :). I actually didn't even notice the IXmlSerializable interface was not supposed to be used. I saw the suggestion in a post (and if I remember correctly it was from a MS VIP or a MS employee). You're right though, it shouldn't really be used. I missed that IsNullable property. A co-worker claims to have used that and still gets a "minOccurs=0", but I'll check that out in any case. Thanks for the help!
I, for one, do not think the problem was that the band was down. I think that the problem may have been that there was a Stonehenge monument on the stage that was in danger of being crushed by a dwarf.
-David St. Hubbins