XmlSchemaCollection comme cache de schéma
La classe XmlSchemaCollection est un cache ou une bibliothèque où des schémas XDR (XML-Data Reduced) et des schémas de langage XSD (XML Schema Definition) peuvent être stockés et validés. XmlSchemaCollection améliore les performances en mettant les schémas en cache au lieu d'y accéder à partir d'un fichier ou d'une URL.
Remarque Bien que la classe XmlSchemaCollection contienne à la fois des schémas XDR et des schémas XML, toute méthode ou tout objet qui prend ou retourne un objet XmlSchema ne prend en charge que les schémas XML.
Ajout de schémas à la collection
Les schémas sont chargés dans la collection à l'aide de la méthode Add de la collection XmlSchemaCollection. C'est à ce moment-là que le schéma est associé à un URI d'espace de noms. Pour les schémas XML, l'URI d'espace de noms correspond généralement à l'espace de noms cible du schéma. Pour les schémas XDR, l'URI d'espace de noms correspond à l'espace de noms spécifié lors de l'ajout du schéma à la collection.
Recherche d'un schéma dans la collection
Vous pouvez vérifier si un schéma se trouve dans la collection à l'aide de la méthode Contains. Cette méthode prend soit un objet XmlSchema (schémas XML uniquement), soit une chaîne qui représente l'URI d'espace de noms associé au schéma (schémas XDR et schémas XML).
Extraction d'un schéma à partir de la collection
Vous pouvez extraire un schéma à partir de la collection à l'aide de la propriété Item. La propriété Item prend une chaîne qui représente l'URI d'espace de noms associé au schéma, généralement son espace de noms cible, et retourne un objet XmlSchema. La propriété Item s'applique uniquement aux schémas XML. La valeur de retour est toujours une référence null pour les schémas XDR car ils n'ont pas de modèle objet disponible.
Validation des documents XML à l'aide de XmlSchemaCollection
Vous pouvez valider une instance de document XML à l'aide de XmlSchemaCollection en créant l'objet XmlSchemaCollection, en ajoutant vos schémas à la collection, puis en définissant la propriété Schemas sur XmlValidatingReader pour assigner le nouvel objet XmlSchemaCollection à XmlValidatingReader.
Performances améliorées
Si vous procédez à la validation de plusieurs documents par rapport au même schéma, il est recommandé d'utiliser XmlSchemaCollection car elle offre de meilleures performances grâce à la mise en cache des schémas.
L'exemple de code ci-dessous crée l'objet XmlSchemaCollection, ajoute des schémas à la collection et définit la propriété Schemas.
Dim tr as XmlTextReader = new XmlTextReader("Books.xml")
Dim vr as XmlValidatingReader = new XmlValidatingReader(tr)
Dim xsc as XmlSchemaCollection = new XmlSchemaCollection
xsc.Add("urn:bookstore-schema", "Books.xsd")
vr.Schemas.Add(xsc)
[C#]
XmlTextReader tr = new XmlTextReader("Books.xml");
XmlValidatingReader vr = new XmlValidatingReader(tr);
XmlSchemaCollection xsc = new XmlSchemaCollection();
xsc.Add("urn:bookstore-schema", "Books.xsd");
vr.Schemas.Add(xsc);
Voir aussi
Validation XML à l'aide de schémas | Validation par rapport à un schéma XDR à l'aide de XmlSchemaCollection | Validation par rapport à un schéma de langage XSD à l'aide de XmlSchemaCollection