XmlSchemaCollection come cache di uno schema

XmlSchemaCollection è una cache o una libreria in cui gli schemi XDR (XML-Data Reduced) e del linguaggio XSD (XML Schema Definition) possono essere archiviati e convalidati. XmlSchemaCollection migliora le prestazioni inserendo in memoria gli schemi anziché accedervi da un file o un URL.

Nota   Sebbene la classe XmlSchemaCollection archivi sia schemi XDR che XML, qualsiasi metodo e proprietà che accetta o restituisce un oggetto XmlSchema supporta solo schemi XML.

Aggiunta di schemi all'insieme

Gli schemi vengono caricati nell'insieme utilizzando il metodo Add di XmlSchemaCollection. A quel punto lo schema viene associato a un URI dello spazio dei nomi. Per gli schemi XML l'URI dello spazio dei nomi sarà generalmente lo spazio dei nomi di destinazione per lo schema. Per gli schemi XDR l'URI dello spazio dei nomi è lo spazio dei nomi specificato quando lo schema è stato aggiunto all'insieme.

Controllo di uno schema nell'insieme

È possibile verificare se uno schema si trova nell'insieme utilizzando il metodo Contains, che accetta un oggetto XmlSchema (solo per schemi XML) o una stringa che rappresenta l'URI dello spazio dei nomi associato allo schema (per gli schemi XML e XDR).

Recupero di uno schema dall'insieme

È possibile recuperare uno schema dall'insieme utilizzando la proprietà Item che accetta una stringa che rappresenta l'URI dello spazio dei nomi associato allo schema, generalmente il relativo spazio dei nomi di destinazione, e restituisce un oggetto XmlSchema. La proprietà Item si applica solo a schemi XML. Il valore restituito è sempre un riferimento null per gli schemi XDR in quanto essi non hanno un modello a oggetti disponibile.

Convalida di documenti XML mediante XmlSchemaCollection

È possibile convalidare un documento di istanza XML utilizzando un XmlSchemaCollection creando l'oggetto XmlSchemaCollection, aggiungendo gli schemi all'insieme e impostando la proprietà Schemas su XmlValidatingReader per assegnare l'oggetto XmlSchemaCollection creato a XmlValidatingReader.

Prestazioni migliorate

Si consiglia, se si convalida più di un documento rispetto allo stesso schema, di utilizzare XmlSchemaCollection in quanto offre prestazioni migliori in quanto inserisce gli schemi in memoria.

Il codice di esempio che segue crea un oggetto di classe XmlSchemaCollection, aggiunge schemi all'insieme e imposta la proprietà 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);

Vedere anche

Convalida del linguaggio XML con schemi | Convalida XDR con XmlSchemaCollection | Convalida XML Schema (XSD) con XmlSchemaCollection