如何解决使用 XSD 文件进行 XML 验证
我尝试使用 xml 架构验证我的 xml 结构。
此处给出了此代码示例:https://docs.microsoft.com/en-us/dotnet/api/system.xml.xmldocument.validate?view=net-5.0
XmlReaderSettings settings = new XmlReaderSettings();
settings.Schemas.Add("http://www.contoso.com/books","contosoBooks.xsd");
settings.ValidationType = ValidationType.Schema;
XmlReader reader = XmlReader.Create("contosoBooks.xml",settings);
XmlDocument document = new XmlDocument();
document.Load(reader);
ValidationEventHandler eventHandler = new ValidationEventHandler(ValidationEventHandler);
// the following call to Validate succeeds.
document.Validate(eventHandler);
// add a node so that the document is no longer valid
XPathNavigator navigator = document.CreateNavigator();
navigator.MovetoFollowing("price","http://www.contoso.com/books");
XmlWriter writer = navigator.InsertAfter();
writer.WriteStartElement("anotherNode","http://www.contoso.com/books");
writer.WriteEndElement();
writer.Close();
// the document will Now fail to successfully validate
document.Validate(eventHandler);
问题是,当我使用非有效 xml 文档时,我已经在线上出现了 System.Xml.Schema.XmlSchemaValidationException 类型的异常:
XmlReader reader = XmlReader.Create("contosoBooks.xml",settings);
这是否意味着您不再需要在 C# 6 中使用这个 Validate(eventHandler) 方法?或者它会处理一些特定的验证问题?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。