Chargement de données à partir d'un lecteur
Si un document XML est chargé à l'aide de la méthode Load et d'un paramètre d'objet XmlReader, il existe des différences entre le comportement qui se produit et celui du chargement de données d'autres formats. Si le lecteur est dans son état initial, Load utilise l'ensemble du contenu du lecteur et crée le DOM (Document Object Model) XML à partir de toutes les données du lecteur.
Si le lecteur est déjà positionné sur un nœud du document et s’il est ensuite transmis à la méthode Load, Load essaie de lire le nœud actuel et tous ses frères, jusqu’à l’étiquette finale qui clôture la profondeur actuelle en mémoire. La réussite de la tentative Load dépend du nœud sur lequel le lecteur est situé au moment du chargement, tandis que Load vérifie que le XML provenant du lecteur est correctement construit. Si le XML n'est pas correctement construit, Load lève une exception. Par exemple, la collection de nœuds suivante comporte deux éléments de niveau racine, le XML n'est pas correctement construit et Load lève une exception.
- Nœud Comment, suivi d'un nœud Element, lui-même suivi d'un nœud Element, suivi d'un nœud EndElement.
La collection de nœuds suivante crée un DOM incomplet, car aucun élément de niveau racine n'existe.
- Nœud Comment, suivi d'un nœud ProcessingInstruction, lui-même suivi d'un nœud Comment, suivi d'un nœud EndElement.
Aucune exception n'est levée et les données sont chargées. Vous pouvez ajouter un élément racine au-dessus de ces nœuds et créer un XML correctement construit qui peut être enregistré sans erreur.
Si le lecteur est positionné sur un nœud sans descendant non valide pour le niveau racine d'un document (par exemple, un espace blanc ou un nœud d'attribut), le lecteur poursuit la lecture jusqu'à se positionner sur un nœud pouvant être utilisé pour la racine. Le chargement du document démarre à ce stade.
Par défaut, Load ne vérifie pas si le XML est valide à l'aide de la définition de type de document (DTD) ou la validation de schéma. Il vérifie uniquement si le XML est correctement construit. Pour effectuer la validation, vous devez créer un objet XmlReader à l’aide de la classe XmlReaderSettings. La classe XmlReader peut effectuer la validation à l’aide d’une DTD ou d’un schéma XSD (Schema definition language). La propriété ValidationType de la classe XmlReaderSettings détermine si l'instance de l'objet XmlReader effectue la validation. Pour plus d'informations sur la validation des données XML, consultez la section Notes de la page de référence XmlReader.