我有一个我在内存中构建的XmlDocument。我有一个存储在我的数据库中的XSD文档。我获得了该XSD文档的流,并尝试验证XmlDocument。但验证永远不会奏效。即使我在XmlDocument中添加了无效节点,它也始终有效。
另外,我在xml文档中指定了TargetNameSpace值,因为它在XSD中。但验证仍然没有发生。
XmlSchemaSet schemaSet = new XmlSchemaSet();
schemaSet.Add("http://tempuri.org/test.xsd", XmlReader.Create(stream));
schemaSet.Compile();
XmlSchema xmlSchema = null;
foreach (XmlSchema schema in schemaSet.Schemas())
{
xmlSchema = schema;
}
//setting targetnamespace as it is there in xsd
rootElement.SetAttribute("xmlns", xmlSchema.TargetNamespace);
xmlDoc.Schemas.Add(xmlSchema);
string error = string.Empty;
xmlDoc.Validate((sender, e) =>
{
switch (e.Severity)
{
case XmlSeverityType.Error:
error = e.Message;
break;
case XmlSeverityType.Warning:
LogWarning(e.Message);
break;
}
});
错误字符串始终为空。我在这里做错了吗?