小编Stu*_*art的帖子

xmldocument和嵌套模式

使用c#和.net 3.5我正在尝试针对包含的模式验证xml文档.

模式和包括如下

Schema1.xsd - >包含another.xsd

another.xsd - > include base.xsd

当我尝试将Schema1.xsd添加到XmlDocument时,我收到以下错误.

未声明类型"YesNoType"或不是简单类型.

我相信我收到此错误,因为我加载Schema1.xsd架构时没有包含base.xsd文件.

我正在尝试使用XmlSchemaSet类,并且我将XmlResolver uri设置为模式的位置.

注意:所有模式都位于同一目录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) …
Run Code Online (Sandbox Code Playgroud)

.net c# schema xmldocument xmlschemaset

5
推荐指数
1
解决办法
1994
查看次数

标签 统计

.net ×1

c# ×1

schema ×1

xmldocument ×1

xmlschemaset ×1