Heim > Backend-Entwicklung > C++ > Wie validiere ich XML automatisch anhand einer referenzierten XSD in C#?

Wie validiere ich XML automatisch anhand einer referenzierten XSD in C#?

Linda Hamilton
Freigeben: 2025-01-21 19:06:09
Original
537 Leute haben es durchsucht

How to Automatically Validate XML Against a Referenced XSD in C#?

Validierung von XML anhand referenzierter XSD in C#

Wenn eine XML-Datei mit einem angegebenen Schemaspeicherort geladen wird, wird erwartet, dass die Datei automatisch anhand des Schemas in C# validiert wird. Eine manuelle Angabe des Schemas scheint jedoch erforderlich.

Um XML zu validieren, ohne das Schema manuell anzugeben, müssen Sie eine Instanz von XmlReaderSettings erstellen und diese bei der Erstellung an XmlReader übergeben. Dadurch können Sie ValidationEventHandler in den Einstellungen abonnieren, um Validierungsfehler zu erhalten.

Hier ist ein modifiziertes Codebeispiel, um dies zu erreichen:

<code class="language-csharp">using System.Xml;
using System.Xml.Schema;
using System.IO;

public class ValidXSD
{
    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);

        // 使用指定的验证设置加载 XML 文件。
        XmlDocument asset = new XmlDocument();
        XmlReader reader = XmlReader.Create("XML_file_path.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);
    }
}</code>
Nach dem Login kopieren

Mit XmlReaderSettings können Sie XML-Dateien automatisch anhand referenzierter XSDs validieren, ohne das Schema explizit anzugeben.

Das obige ist der detaillierte Inhalt vonWie validiere ich XML automatisch anhand einer referenzierten XSD in C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage