Maison >développement back-end >C++ >Comment valider XML par rapport à un schéma XSD référencé en C# ?

Comment valider XML par rapport à un schéma XSD référencé en C# ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-21 18:57:09559parcourir

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

Validation XML C# par rapport au schéma XSD référencé

Garantir la validité des documents XML par rapport à un schéma défini est crucial. Cet article illustre la validation XML C# à l'aide de la classe XmlDocument par rapport à un schéma XSD.

Contrairement au comportement par défaut, XmlDocument ne valide pas automatiquement par rapport aux schémas intégrés dans le XML. Pour activer cela, nous allons configurer XmlReaderSettings. Plus précisément, nous définissons ValidationType sur Schema et utilisons ValidationFlags pour traiter les schémas en ligne, les emplacements de schéma et signaler les avertissements.

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

Ensuite, créez un XmlReader en utilisant ces paramètres et enregistrez un ValidationEventHandler pour capturer les résultats de validation.

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

La méthode ValidationCallBack traite les événements de validation :

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

Cette méthode simplifiée valide automatiquement le XML par rapport à son schéma intégré, éliminant ainsi le besoin de chargement manuel du schéma dans l'objet XmlDocument. La fonction ValidationCallBack fournit des avertissements et des messages d'erreur clairs.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn