You may want to test your schema with several tools. - validate against Relax-NG schema -e or --err - print verbose error messages on stderr -b or --list-bad - list only files which do not validate -g or --list-good - list only files which validate -q or --quiet - do not list files (return result code only) NOTE: XML Schemas are not fully supported yet due to its incomplete support in libxml2 (see XMLStarlet is a command line toolkit to query/edit/check/transform XML documents (for more information see An XML editor for quick and easy XML validation is available at just need to run the installer and after that you can validate your XML files with an easy to use desktop application or the command-line. I'm getting frustrated by the errors coming out of xmlllint. If there is a wrong attribute in the XML then xmllint tells you the name of the unsupported attribute.
In addition you also get support for Schematron and Relax NG. Update 1/13/2012: The command line tool is free to use and uses Xerces as XML parser. But if you are missing an attribute in the XML you just get a message saying the element can not be validated.
This allows me to scan all the xml files picking up which xsd to use by parsing the xml.
# Function: # verifyschemas - Will validate all xml files in a configuration directory against the schemas in the passed in directory # Parameters: # The directory where the schema *files are located.
After some research, I think the best answer is Xerces, as it implements all of XSD, is cross-platform and widely used.