使用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