Freigeben über


XmlSchemaCollection als Schemacache

Bei XmlSchemaCollection handelt es sich um einen Cache oder eine Bibliothek, worin XDR (XML-Data Reduced)- und XSD (XML Schema definition language)-Schemas gespeichert und überprüft werden können. XmlSchemaCollection erhöht die Leistungsfähigkeit, indem Schemas im Arbeitsspeicher zwischengespeichert werden, anstatt über eine Datei oder einen URL auf sie zuzugreifen.

Hinweis   Obwohl die XmlSchemaCollection-Klasse sowohl XDR- als auch XML-Schemas speichert, unterstützt jede Methode und Eigenschaft, die ein XmlSchema-Objekt übernimmt oder zurückgibt, ausschließlich XML-Schemas.

Hinzufügen von Schemas zur Auflistung

Durch die Add-Methode von XmlSchemaCollection werden Schemas in die Auflistung geladen, sobald das Schema einem Namespace-URI zugeordnet wird. Bei XML-Schemas ist der Namespace-URI normalerweise der Zielnamespace des Schemas. Bei XDR-Schemas ist der Namespace-URI der Namespace, der beim Hinzufügen des Schemas zur Auflistung angegeben wurde.

Suche nach einem Schema in der Auflistung

Durch die Contains-Methode können Sie überprüfen, ob sich ein Schema in der Auflistung befindet. Die Contains-Methode übernimmt entweder ein XmlSchema-Objekt (nur bei XML-Schemas) oder eine Zeichenfolge, die den dem Schema zugeordneten Namespace-URI repräsentiert (bei XML- und XDR-Schemas).

Abrufen eines Schemas aus der Auflistung

Mit der Item-Eigenschaft kann ein Schema aus der Auflistung abgerufen werden. Die Item-Eigenschaft übernimmt eine Zeichenfolge, die den dem Schema zugeordneten Namespace-URI repräsentiert (normalerweise den Zielnamespace des Schemas), und gibt ein XmlSchema-Objekt zurück. Die Item-Eigenschaft wird nur bei XML-Schemas angewendet. Der Rückgabewert ist bei XDR-Schemas immer ein NULL-Verweis, da diese kein Objektmodell zur Verfügung haben.

Überprüfen von XML-Dokumenten mit "XmlSchemaCollection"

Ein XML-Instanzendokument wird mit Hilfe von XmlSchemaCollection folgendermaßen überprüft: Ein XmlSchemaCollection-Objekt wird erstellt, und die jeweiligen Schemas werden zur Auflistung hinzugefügt. Anschließend wird die Schemas-Eigenschaft von XmlValidatingReader gesetzt, um die erstellte XmlSchemaCollection zu XmlValidatingReader zuzuordnen.

Leistungssteigerung

Wird mehr als ein Dokument anhand desselben Schemas überprüft, ist es ratsam, XmlSchemaCollection zu verwenden. Die Leistung wird durch Zwischenspeichern der Schemas im Arbeitsspeicher gesteigert.

Im folgenden Codebeispiel wird das XmlSchemaCollection-Objekt erstellt, und die Schemas werden zur Auflistung hinzugefügt. Anschließend wird die Schemas-Eigenschaft gesetzt.

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);

Siehe auch

Gültigkeitsprüfung von XML mit Schemas | XDR-Gültigkeitsprüfung mit XmlSchemaCollection | Gültigkeitsprüfung von XML-Schema (XSD) mit XmlSchemaCollection