針對引用的 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中文網其他相關文章!