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

Wie validiere ich XML anhand eines referenzierten XSD-Schemas in C#?

Linda Hamilton
Linda HamiltonOriginal
2025-01-21 18:57:09617Durchsuche

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

C#-XML-Validierung anhand des referenzierten XSD-Schemas

Die Sicherstellung der Gültigkeit eines XML-Dokuments anhand eines definierten Schemas ist von entscheidender Bedeutung. Dieser Artikel demonstriert die C#-XML-Validierung mit der Klasse XmlDocument anhand eines XSD-Schemas.

Im Gegensatz zum Standardverhalten führt XmlDocument keine automatische Validierung anhand der im XML eingebetteten Schemata durch. Um dies zu ermöglichen, konfigurieren wir XmlReaderSettings. Konkret setzen wir ValidationType auf Schema und verwenden ValidationFlags, um Inline-Schemata, Schema-Speicherorte und Berichtswarnungen zu verarbeiten.

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

Als nächstes erstellen Sie ein XmlReader mit diesen Einstellungen und registrieren ein ValidationEventHandler, um Validierungsergebnisse zu erfassen.

<code class="language-csharp">XmlReader reader = XmlReader.Create("inlineSchema.xml", settings);
reader.ValidationEventHandler += new ValidationEventHandler(ValidationCallBack);</code>

Die ValidationCallBack-Methode verarbeitet Validierungsereignisse:

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

Diese optimierte Methode validiert das XML automatisch anhand des eingebetteten Schemas, sodass kein manuelles Laden des Schemas in das XmlDocument-Objekt erforderlich ist. Die ValidationCallBack-Funktion liefert klare Warnungen und Fehlermeldungen.

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

Stellungnahme:
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