针对引用的 XSD 架构进行 C# XML 验证
确保 XML 文档针对已定义模式的有效性至关重要。 本文演示了使用 XmlDocument
类针对 XSD 架构进行 C# XML 验证。
与默认行为不同,XmlDocument
不会自动验证 XML 中嵌入的架构。 为了启用此功能,我们将配置XmlReaderSettings
。 具体来说,我们将 ValidationType
设置为 Schema
并利用 ValidationFlags
处理内联模式、模式位置并报告警告。
<code class="language-csharp">XmlReaderSettings settings = new XmlReaderSettings(); settings.ValidationType = ValidationType.Schema; settings.ValidationFlags |= XmlSchemaValidationFlags.ProcessInlineSchema; settings.ValidationFlags |= XmlSchemaValidationFlags.ProcessSchemaLocation; settings.ValidationFlags |= XmlSchemaValidationFlags.ReportValidationWarnings;</code>
接下来,使用这些设置创建一个 XmlReader
并注册一个 ValidationEventHandler
来捕获验证结果。
<code class="language-csharp">XmlReader reader = XmlReader.Create("inlineSchema.xml", settings); reader.ValidationEventHandler += new ValidationEventHandler(ValidationCallBack);</code>
ValidationCallBack
方法处理验证事件:
<code class="language-csharp">private static void ValidationCallBack(object sender, ValidationEventArgs args) { if (args.Severity == XmlSeverityType.Warning) Console.WriteLine("\tWarning: " + args.Message); else Console.WriteLine("\tValidation error: " + args.Message); }</code>
这种简化的方法会根据其嵌入的架构自动验证 XML,从而无需手动将架构加载到 XmlDocument
对象中。 ValidationCallBack
功能提供清晰的警告和错误消息。
以上是如何在 C# 中根据引用的 XSD 架构验证 XML?的详细内容。更多信息请关注PHP中文网其他相关文章!