I am finding that working with XSD schema is much nicer with Visual Studio 2008. There's error detection and even some Intellisense. Nice job, MS guys. There are a few things I want to highlight: 1) If you are declaring a targetNamespace attribute on the schema, and you want to refer to types in that namespace you also have to include that namespace in a separate xmlns:xx="target.namespace.whatever" attribute. 2) It is possible to reuse objects, although the schema you get as an output from VS doesn't automatically set that up for you. You have to do the legwork. Still, it's better than it was before. 3) To declare an enumeration, you start with an <xs:simpletype> element, nest an <xs:restriction base="xs:whatevertype">, and nest the <xs:enumeration value="myvalue"> elements inside that.