Gültigkeitsprüfung von XML mit Schemas
Mit Hilfe einer DTD (Dokumenttypdefinition) oder eines Schemas werden sowohl die Struktur eines XML-Dokuments als auch seine Elementbeziehungen, Datentypen und Inhaltsbeschränkungen definiert. Ein XML-Dokument gilt als wohlgeformt, wenn es allen Syntaxanforderungen entspricht, die in der Empfehlung "Extensible Markup Language (XML) 1.0 Recommendation" (nur auf Englisch verfügbar) des W3C (World Wide Web Consortium) definiert sind. Es wird jedoch erst dann als gültig angesehen, wenn es darüber hinaus auch den Beschränkungen entspricht, die durch seine DTD oder sein Schema definiert wurden. Daher sind alle gültigen XML-Dokumente wohlgeformt, aber nicht alle wohlgeformten XML-Dokumente sind gültig.
Weitere Informationen über XML finden Sie unter http://www.w3.org/TR/2000/REC-xml-20001006 in der Empfehlung "Extensible Markup Language (XML) 1.0 (Second Edition) Recommendation" des W3C. Weitere Informationen über XML-Schemas finden Sie unter http://www.w3.org/TR in "XML Schema Part 2: Datatypes Recommendation" (beide nur auf Englisch verfügbar).
Die Überprüfung von XML-Dokumenten und XML-Fragmenten wird durch Verwendung der XmlValidatingReader-Klasse erzwungen. Diese stellt Schemaüberprüfungsdienste für DTD, XDR (XML-Data Reduced) und XSD (XML Schema definition language) zur Verfügung, indem die in den Empfehlungen des W3C definierten Gültigkeitsbeschränkungen implementiert werden.
Die XmlValidatingReader-Klasse implementiert die XmlReader-Klasse und führt eine ausschließlich vorwärts ausgerichtete Überprüfung über einen XML-Stream durch. XmlValidatingReader kann XmlTextReader als Eingabe verwenden. Die XmlValidatingReader-Ebenen werden über XmlTextReader unterstützt, die Analyse von XML-Fragmenten durch die XmlParserContext-Klasse. Weitere Informationen zur Verarbeitung von XML-Fragmenten finden Sie unter Lesen von XML-Fragmenten mit XmlValidatingReader.
Jede für XmlTextReader eingestellte Eigenschaft gilt auch für XmlValidatingReader.
Im folgenden Codebeispiel wird die Unterstützung der XmlValidatingReader-Ebenen über XmlTextReader dargestellt.
Dim tr as XmlTextReader = new XmlTextReader("Sample1.xml")
Dim vr as XmlValidatingReader = new XmlValidatingReader(tr)
[C#]
XmlTextReader tr = new XmlTextReader("Sample1.xml");
XmlValidatingReader vr = new XmlValidatingReader(tr);
In diesem Abschnitt
- Überprüfen der Ladezeit von XmlDocument
Beschreibt den Ladevorgang eines XML-Dokuments durch XmlValidatingReader. - XML-Gültigkeitsprüfung mit XmlValidatingReader
Erläutert die Implementierung der XmlValidatingReader-Klasse zur Überprüfung anhand von DTDs, XDR- und XSD-Schemas sowie XML-Fragmenten. Darüber hinaus wird das ValidationEventHandler-Ereignis beschrieben. - XmlSchemaCollection als Schemacache
Erläutert, wie Schemas in eine zwischengespeicherte Auflistung zur Verwendung bei Überprüfungen geladen werden. - Auflösen von Entitäten mit XmlValidatingReader
Beschreibt die Eigenschaften und Methoden zur Behandlung von Entitäten. - Zugriff auf Schematypinformationen
Informiert über den Zugriff auf Schematypinformationen während der Überprüfung.
Verwandte Abschnitte
- XML-Schemareferenz (XSD)
Dokumentiert die Sprache XSD (XML Schema Definition) entsprechend den Festlegungen des W3C (World Wide Web Consortium).