首頁 >後端開發 >C++ >如何在 C# 中根據引用的 XSD 架構驗證 XML?

如何在 C# 中根據引用的 XSD 架構驗證 XML?

Linda Hamilton
Linda Hamilton原創
2025-01-21 18:57:09592瀏覽

How to Validate XML against a Referenced XSD Schema in C#?

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn