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

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

Barbara Streisand
Freigeben: 2025-01-21 19:12:11
Original
885 Leute haben es durchsucht

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

XML mit externem XSD-Schema in C# validieren

In C# kann die Validierung eines XML-Dokuments anhand eines externen XSD-Schemas normalerweise durch direkte Nutzung der im XML-Attribut xsi:schemaLocation bereitgestellten Informationen erfolgen. In einigen Fällen ist jedoch ein manueller Eingriff erforderlich, um die Überprüfung durchzuführen.

Um XML automatisch anhand eines angegebenen Schemas zu validieren, müssen Sie eine Instanz von XmlReaderSettings erstellen und diese beim Erstellen von XmlReader an diese übergeben. Durch Festlegen von ValidationType auf Schema und ValidationFlags, um ProcessInlineSchema, ProcessSchemaLocation und ReportValidationWarnings einzuschließen, verarbeitet und validiert der Leser das XML automatisch anhand des Schemas, auf das im xsi:schemaLocation-Attribut verwiesen wird.

Hier ist ein Codeausschnitt, der diesen Ansatz demonstriert:

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);

        // 创建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);
    }
}
Nach dem Login kopieren

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

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