In my post, OpenXmlCodeTester: Validating Code in Open XML Documents I used XSD to validate the build instructions (which are XML that you place in content controls). INFER.EXE, available at XML Downloads, is your best friend for putting together schemas. This isn’t news, but I was chatting with one of my dev friends here at Microsoft, and he wasn’t aware of the existence of this tool, so I’m calling attention to it.
It outputs a schema that correctly specifies if attributes or elements can be repeated, if they are optional, etc.:Its use couldn’t be simpler – create a directory, put examples of all varieties of your XML documents to validate in the directory, CD to the directory, and run INFER.EXE.
And while I’m at it, I’m going to recommend a book, Definitive XML Schema, by Patricia Walmsley, published by Prentise Hall (ISBN-10: 0130655678 ISBN-13: 978-0130655677). In addition to being the best XSD book I’ve read, it is an example of good technical writing – clear, concise, and thorough.