使用c#和.net 3.5我试图根据包含的模式验证xml文档。xmldocument和嵌套模式
的模式和有包括如以下
Schema1.xsd - >包括another.xsd
another.xsd - >包括base.xsd
当我尝试添加Schema1。 xsd到XmlDocument我得到以下错误。
类型'YesNoType'未声明或不是简单类型。
我相信我得到这个错误,因为当我加载Schema1.xsd模式时没有包含base.xsd文件。
我想使用XmlSchemaSet类,并将XmlResolver URI设置为模式的位置。
注:所有模式生活在同一目录e下:\开发\ 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包含嵌套的模式。
顺便说一句,有没有这样的事情,C#.NET – 2011-01-10 14:52:54