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

Wie validiere ich eine XML-Datei automatisch anhand der referenzierten XSD in C#?

DDD
Freigeben: 2025-01-21 19:02:10
Original
1079 Leute haben es durchsucht

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

XML anhand referenzierter XSD in C# validieren

Frage:

Wie validiere ich automatisch eine XML-Datei, die einen angegebenen Schemaspeicherort in C# enthält, ohne das zu validierende Schema explizit anzugeben, wie es Visual Studio beim Öffnen der Datei tut?

Antwort:

Um eine XML-Datei automatisch anhand einer referenzierten XSD in C# zu validieren, ohne das Schema explizit anzugeben, müssen Sie eine Instanz von XmlReaderSettings erstellen und diese beim Erstellen von XmlReader an diese übergeben. Validierungsfehler können durch das Abonnieren von settings in ValidationEventHandler empfangen werden.

Hier ist ein Beispielcode, der diese Methode demonstriert:

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

    }
}
Nach dem Login kopieren

Mit dieser Methode wird die Validierung automatisch basierend auf dem Muster durchgeführt, das im xsi:schemaLocation-Attribut der XML-Datei angegeben ist.

Das obige ist der detaillierte Inhalt vonWie validiere ich eine XML-Datei automatisch anhand der 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage