Использование C# и .net 3.5 Я пытаюсь проверить XML-документ на схему, которая включает.xmldocument и вложенные схемы
Схемы и есть включает в себя, как показано ниже
Schema1.xsd -> включают another.xsd
another.xsd -> включают base.xsd
Когда я пытаюсь добавить SCHEMA1. xsd в XmlDocument, я получаю следующую ошибку.
Тип 'YesNoType' не объявлен или не является простым типом.
Я верю, что получаю эту ошибку, потому что файл base.xsd не включается при загрузке схемы Schema1.xsd.
Я пытаюсь использовать класс XmlSchemaSet, и я устанавливаю url XmlResolver в расположение схем.
Примечание: Все схемы живут под одной и той же директории E: \ Dev \ Main \ XmlSchemas
Вот код
string schemaPath = "E:\\Dev\\Main\\XmlSchemas";
XmlDocument xmlDocSchema = new XmlDocument();
XmlSchemaSet s = new XmlSchemaSet();
XmlUrlResolver resolver = new XmlUrlResolver();
Uri baseUri = new Uri(schemaPath);
resolver.ResolveUri(null, schemaPath);
s.XmlResolver = resolver;
s.Add(null, XmlReader.Create(new System.IO.StreamReader(schemaPath + "\\Schema1.xsd"), new XmlReaderSettings { ValidationType = ValidationType.Schema, XmlResolver = resolver }, new Uri(schemaPath).ToString()));
xmlDocSchema.Schemas.Add(s);
ValidationEventHandler valEventHandler = new ValidationEventHandler
(ValidateNinoDobEvent);
try
{
xmlDocSchema.LoadXml(xml);
xmlDocSchema.Validate(valEventHandler);
}
catch (XmlSchemaValidationException xmlValidationError)
{
// need to interogate the Validation Exception, for possible further
// processing.
string message = xmlValidationError.Message;
return false;
}
Может кто-нибудь мне точку в правильном направлении относительно проверки правильности XmlDocument против схема с вложенными включенными.
BTW, нет такой вещи, как C# .NET –