Следующий код будет вручную загружать и проверять ваш XML по файлу схемы программным способом, позволяя вам обрабатывать любые возникающие ошибки и / или предупреждения .
//Read in the schema document
using (XmlReader schemaReader = XmlReader.Create("schema.xsd"))
{
XmlSchemaSet schemaSet = new XmlSchemaSet();
//add the schema to the schema set
schemaSet.Add(XmlSchema.Read(schemaReader,
new ValidationEventHandler(
delegate(Object sender, ValidationEventArgs e)
{
}
)));
//Load and validate against the programmatic schema set
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.Schemas = schemaSet;
xmlDocument.Load("something.xml");
xmlDocument.Validate(new ValidationEventHandler(
delegate(Object sender, ValidationEventArgs e)
{
//Report or respond to the error/warning
}
));
}
Теперь, очевидно, вы хотите, чтобы классы, сгенерированные xsd.exe, делали это автоматически и при загрузке (для описанного выше подхода потребовалась бы вторая обработка файла XML), но проверка перед загрузкой позволила бы вам программно определять неправильный входной файл.