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

如何在 C# 中根據引用的 XSD 自動驗證 XML 檔案?

DDD
發布: 2025-01-21 19:02:10
原創
1079 人瀏覽過

How to Automatically Validate an XML File Against its Referenced XSD in C#?

在C#中根據引用的XSD驗證XML

問題:

如何在C#中自動驗證包含指定模式位置的XML文件,而無需明確指定要驗證的模式,就像Visual Studio開啟文件時那樣?

答案:

要在C#中根據引用的XSD自動驗證XML文件,無需明確指定模式,需要創建一個XmlReaderSettings實例,並在創建XmlReader時將其傳遞給它。透過訂閱settings中的ValidationEventHandler,可以接收驗證錯誤。

以下是一個示範此方法的範例程式碼:

using System.Xml;
using System.Xml.Schema;
using System.IO;

public class XML验证
{
    public static void Main()
    {
        // 设置验证设置。
        XmlReaderSettings settings = new XmlReaderSettings();
        settings.ValidationType = ValidationType.Schema;
        settings.ValidationFlags |= XmlSchemaValidationFlags.ProcessInlineSchema;
        settings.ValidationFlags |= XmlSchemaValidationFlags.ProcessSchemaLocation;
        settings.ValidationFlags |= XmlSchemaValidationFlags.ReportValidationWarnings;
        settings.ValidationEventHandler += new ValidationEventHandler(ValidationCallBack);

        // 创建XmlReader对象。
        XmlReader reader = XmlReader.Create("inlineSchema.xml", settings);

        // 解析文件。
        while (reader.Read()) ;

    }
    // 显示任何警告或错误。
    private static void ValidationCallBack(object sender, ValidationEventArgs args)
    {
        if (args.Severity == XmlSeverityType.Warning)
            Console.WriteLine("\t警告:未找到匹配的模式。未进行验证。" + args.Message);
        else
            Console.WriteLine("\t验证错误: " + args.Message);

    }
}
登入後複製

使用此方法,驗證將根據XML檔案xsi:schemaLocation屬性中指定的模式自動執行。

以上是如何在 C# 中根據引用的 XSD 自動驗證 XML 檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板