Types de validation de la classe XmlValidatingReader
La propriété ValidationType détermine le type de validation effectuée par la classe XmlValidatingReader. Il vous faut définir cette propriété avant d'appeler la méthode Read. La propriété XmlResolver est utilisée si des définitions de type de document (DTD) ou des schémas externes nécessitent une validation.
Les tableaux suivants définissent les valeurs de la propriété ValidationType.
ValidationType.Auto
Il s'agit de la valeur par défaut de la propriété ValidationType. Le tableau ci-dessous met en avant les règles de validation lorsque la propriété ValidationType a la valeur Auto.
DTD ou schéma | ValidationType.Auto |
---|---|
Pas de DTD ou de schéma | Analyse le code XML sans validation. Aucune exception n'est levée. Aucune information de type n'est fournie. |
DTD | Effectue une validation DTD. Les attributs et les entités par défaut sont étendus. Les entités générales sont chargées et analysées uniquement si elles sont utilisées (étendues). Aucune information de type n'est fournie. |
Schéma XML (référence ou inline) | Effectue une validation de langage XSD. Valide avec le schéma. Les attributs par défaut sont étendus. Des informations de type sont fournies. |
Schéma XDR (référence ou inline) | Effectue une validation de schéma XDR. Valide avec le schéma. Les attributs par défaut sont étendus. Des informations de type sont fournies. |
DTD et schéma XML ou schéma XDR (référence ou inline) | Effectue une validation de DTD/schéma XML/XRD en fonction de la première occurrence du type de validation. La validation DTD a toujours la priorité sur les autres types de validation. |
ValidationType.DTD
Si la valeur ValidationType.DTD est définie, la classe XmlValidatingReader valide le document en fonction de la DTD. Le tableau ci-dessous met en avant les règles de validation lorsque la propriété ValidationType a la valeur DTD.
DTD ou schéma | ValidationType.DTD |
---|---|
Pas de DTD ou de schéma | Retourne un avertissement No DTD found pour l'élément racine. Aucune exception n'est levée. Aucune information de type n'est fournie. |
DTD | Effectue une validation DTD. Les attributs et les entités par défaut sont étendus. Les entités générales sont chargées et analysées uniquement si elles sont utilisées (étendues). Aucune information de type n'est fournie. |
Schéma XML (référence ou inline) | Retourne un avertissement No DTD found pour l'élément racine. Une exception XmlException est levée signalant des types de validation mélangés lorsque le schéma est trouvé. |
Schéma XDR (référence ou inline) | Retourne un avertissement No DTD found pour l'élément racine. Une exception XmlException est levée signalant des types de validation mélangés lorsque le schéma est trouvé. |
DTD et schéma XML ou schéma XDR (référence ou inline) | Effectue une validation DTD. Les attributs et les entités par défaut sont étendus. |
ValidationType.Schema
Si la valeur ValidationType.Schema est définie, la classe XmlValidatingReader valide le document en fonction des schémas XML, schémas inline inclus. Le tableau ci-dessous met en avant les règles de validation lorsque la propriété ValidationType a la valeur Schema.
DTD ou schéma | ValidationType.Schema |
---|---|
Pas de DTD ou de schéma | Retourne un avertissement No schema found pour chaque élément. |
DTD | Une exception XmlException est levée signalant des types de validation mélangés. |
Schéma XML (référence ou inline) | Effectue une validation de schéma XML. Valide avec un schéma. Les attributs par défaut sont étendus à partir du schéma. Des informations de type sont fournies. |
Schéma XDR (référence ou inline) | Une exception XmlException est levée signalant des types de validation mélangés. |
DTD et schéma XML ou schéma XDR (référence ou inline) | Effectue une validation de schéma XML. Les attributs par défaut sont étendus à partir du schéma. Des informations de type sont fournies. Si une DTD ou un schéma XDR est trouvé, une exception XmlException est levée signalant des types de validation mélangés. |
ValidationType.XDR
Si la valeur ValidationType.XDR est définie, la classe XmlValidatingReader valide le document en fonction des schémas XDR, schémas inline inclus. Le tableau ci-dessous met en avant les règles de validation lorsque la propriété ValidationType a la valeur XDR.
DTD ou schéma | ValidationType.XDR |
---|---|
Pas de DTD ou de schéma | Retourne un avertissement final indiquant qu'aucune validation n'a eu lieu. |
DTD | Une exception XmlException est levée signalant des types de validation mélangés. |
Schéma XML (référence ou inline) | Une exception XmlException est levée signalant des types de validation mélangés. |
Schéma XDR (référence ou inline) | Effectue une validation XDR. Valide avec un schéma. Les attributs par défaut sont étendus à partir du schéma. Des informations de type sont fournies. |
DTD et schéma XML ou schéma XDR (référence ou inline) | Effectue une validation XDR. Les attributs par défaut sont étendus à partir du schéma. Des informations de type sont fournies. Si une DTD ou un schéma XML est trouvé, une exception XmlException est levée signalant des types de validation mélangés. |
ValidationType.None
La valeur ValidationType.None crée un analyseur non validant conforme à la recommandation « Extensible Markup Language (XML) 1.0 » (en anglais) du World Wide Web Consortium (W3C). Les attributs par défaut sont signalés et les entités générales peuvent être résolues. Aucune erreur de validation n'est levée. Le tableau ci-dessous met en avant les règles de validation lorsque la propriété ValidationType a la None.
DTD ou schéma | ValidationType.None |
---|---|
Pas de DTD ou de schéma | Analyse le code XML sans validation. Aucune exception n'est levée. Aucune information de type n'est fournie. |
DTD | Création d'un analyseur non validant conforme au langage XML 1.0. Aucune validation DTD n'est effectuée. Les attributs et les entités par défaut sont étendus à partir de la DTD. Aucune information de type n'est fournie. |
Schéma XML (référence ou inline) | Analyse le code XML sans validation. Aucune exception n'est levée. Les attributs par défaut ne sont pas étendus à partir du schéma. Aucune information de type n'est fournie. |
Schéma XDR (référence ou inline) | Analyse le code XML sans validation. Aucune exception n'est levée. Les attributs par défaut ne sont pas étendus à partir du schéma. Aucune information de type n'est fournie. |
DTD et schéma XML ou schéma XDR (référence ou inline) | Création d'un analyseur non validant conforme au langage XML 1.0. Aucune validation DTD n'est effectuée. Les attributs et les entités par défaut sont étendus à partir de la DTD. Aucune information de type n'est fournie. |
La classe XmlValidatingReader lève une exception InvalidOperation si la propriété ValidationType est définie après la première méthode Read.
Voir aussi
Validation XML à l'aide de XmlValidatingReader | Validation XML à l'aide de schémas | XmlResolver, classe