Partager via


Conformité des données et la classe XmlWriter

Mise à jour : November 2007

La classe XmlWriter comporte deux paramètres de contrôle de conformité. Vous pouvez configurer l'objet XmlWriter pour qu'il vérifie que les données écrites sont conformes.

Paramètre CheckCharacters

La propriété XmlWriterSettings.CheckCharacters demande au lecteur de vérifier les caractères et de produire un objet XmlException si des caractères se trouvent en dehors de la plage de caractères XML légaux. Lorsque la vérification des caractères est activée, vous avez la certitude que tous les caractères du document se trouvent dans la plage de caractères XML légaux, définie par la recommandation du W3C sur XML 1.0.

Remarque :

La vérification des caractères ne comprend pas le contrôle de caractères illégaux dans les noms XML et ne vérifie pas la validité des noms XML. La vérification des noms est une partie standard du contrôle de conformité. Pour plus d'informations, voir http://www.w3.org/TR/REC-xml#NT-Name.

Par défaut, la vérification de caractères est activée.

Paramètre ConformanceLevel

La propriété XmlWriterSettings.ConformanceLevel configure l'objet XmlWriter pour vérifier et garantir que le flux qui est écrit 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 ou ArgumentException est levé. Le paramètre par défaut est ConformanceLevel.Document.

Remarque :

Si le writer 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), le writer produit une exception. La recommandation XML 1.0 nécessite une conformité au niveau du document lorsqu'une DTD est présente. Donc, si la méthode WriteStartDocument est appelée pour un writer configuré pour la prise en charge de ConformanceLevel.Fragment, le writer produit également une exception.

Niveau de conformité

Description

Document

Ce paramètre garantit que la sortie est conforme aux règles d'un document XML 1.0 correctement construit et peut être traitée par tout processeur conforme.

Remarque :

Le writer n'analyse pas les informations DTD écrites. Il incombe à l'utilisateur de veiller à ce que la DTD soit correctement construite.

Fragment

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

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 assure que tout processeur peut utiliser le flux en lecture comme une entité externe XML 1.0 analysée.

Remarque :

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

Auto

Le writer décide du niveau de la vérification de conformité à appliquer en fonction des données entrantes. Ce réglage peut être utile lorsque vous ne savez pas si le XML généré sera un document ou un fragment XML correctement construit.

Le contrôle de conformité du document s'applique dans les cas suivants :

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 Text, CDATA ou EntityReference au niveau de la racine ;

  • plusieurs éléments au niveau de la racine ;

  • aucun élément au niveau de la racine.

Un objet XmlException est levé en cas de conflit, par exemple vous tentez d'écrire un nœud de texte ou une DTD au niveau de la racine.

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

Voir aussi

Autres ressources

Écriture de XML avec XmlWriter