Partager via


Vérification de la conformité des données avec XmlReader

Mise à jour : November 2007

Des objets XmlReader créés par la méthode Create sont, par défaut, plus conformes que l'implémentation d'objets XmlTextReader. Des objets XmlReader créés par la méthode Create prennent en charge les fonctionnalités suivantes par défaut :

  • Normalisation des caractères de nouvelle ligne

  • Développement des entités

  • Ajout d'attributs par défaut

Les propriétés XmlReaderSettings.CheckCharacters et XmlReaderSettings.ConformanceLevel permettent de spécifier le type de vérifications de conformité à activer pour l'objet XmlReader créé.

Paramètre CheckCharacters

La propriété CheckCharacters de la classe XmlReaderSettings demande au lecteur de vérifier les caractères et de lever un objet XmlException si des caractères se trouvent hors de la portée des caractères XML légaux. Lorsque la vérification des caractères est activée, vous êtes assuré que :

Par défaut, la vérification de caractères est activée. Si le lecteur traite des données de texte, il vérifie toujours que les noms XML sont valides, même lorsque la propriété CheckCharacters est définie sur false.

Paramètre ConformanceLevel

La propriété ConformanceLevel de la classe XmlReaderSettings configure l'objet XmlReader pour vérifier et garantir que le flux en cours de lecture respecte un certain ensemble de règles. En fonction du niveau de conformité spécifié, les données XML peuvent être vérifiées pour voir si elles sont conformes aux règles d'un document ou d'un fragment de document XML 1.0 correctement construit. Si les données ne sont pas conformes, un objet XmlException est levé. Le paramètre par défaut est ConformanceLevel.Document.

Remarque :

Si le lecteur est configuré pour la prise en charge de ConformanceLevel.Fragment, mais si les données XML contiennent une DTD (définition de type de document), un objet XmlException est levé. La recommandation XML 1.0 nécessite une conformité au niveau du document lorsqu'une DTD est présente.

Valeur ConformanceLevel

Description

Document

Les données XML sont conformes aux règles d'un document XML 1.0 correctement construit. Ce niveau de vérification garantit que tout processeur peut utiliser le flux en lecture comme un document XML 1.0.

Le lecteur vérifie les éléments suivants :

  • L'élément de niveau supérieur ne doit pas posséder d'autres nœuds que la déclaration XML, la DTD (définition de type de document), l'élément, le commentaire, l'espace blanc ou l'instruction de traitement.

  • Les données XML doivent posséder exactement un nœud d'élément de niveau supérieur.

Fragment

Les données XML sont conformes aux règles d'un fragment de document XML 1.0 correctement construit.

Ce paramètre accepte les données XML avec plusieurs éléments racines ou nœuds de texte de niveau supérieur. Ce niveau de vérification garantit que tout processeur peut utiliser le flux en lecture comme uneentité externe XML 1.0 analysée.

Remarque :

La DTD n'est pas autorisée dans les fragments.

Auto

Le lecteur décide du niveau de la vérification de conformité à appliquer en fonction des données entrantes.

La vérification de conformité du document est appliquée si les données XML contiennent des informations sur la DTD.

La vérification de conformité du fragment est appliquée si les données XML contiennent l'un des éléments suivants :

  • Un nœud de référence de texte, CDATA ou d'entité au niveau racine

  • Plusieurs éléments au niveau racine

  • Aucun élément au niveau racine

Un objet XmlException est levé en cas de conflit, par exemple lorsqu'il y a un nœud de texte ou une DTD au niveau racine.

Ce paramètre peut être utilisé dans des scénarios englobants lorsque la méthode Create permet d'ajouter des fonctionnalités supplémentaires à un objet XmlReader existant. Dans ce cas, ConformanceLevel.Auto n'ajoute pas de nouvelle vérification de conformité. La vérification de conformité est appliquée à l'objet XmlReader qui est enveloppé.

Objets XmlTextReader, XmlValidatingReader et XmlNodeReader

Le paramètre ConformanceLevel présente le comportement suivant lorsqu'il travaille avec les objets XmlTextReader, XmlValidatingReader ou XmlNodeReader.

Exemple

Le code suivant crée un lecteur qui oblige la conformité au niveau du fragment.

Dim settings as XmlReaderSettings = new XmlReaderSettings()
settings.ConformanceLevel = ConformanceLevel.Fragment
Dim reader as XmlReader = XmlReader.Create(new StringReader(xmlString), settings)
XmlReaderSettings settings = new XmlReaderSettings();
settings.ConformanceLevel = ConformanceLevel.Fragment;
XmlReader reader = XmlReader.Create(new StringReader(xmlString), settings);

Voir aussi

Concepts

Lecture de XML avec XmlReader

Autres ressources

Validation de données XML avec XmlReader