Lesen von XML-Daten mit dem "XmlTextReader"
Die XmlTextReader-Klasse ist eine Implementierung des XmlReaders und stellt einen schnellen, leistungsfähigen Parser bereit. Sie implementiert die Regeln, nach denen XML wohlgeformt sein muss. Diese Klasse ist weder ein Parser mit Überprüfung noch ein Parser ohne Überprüfung, da sie keine DTD- oder Schemainformationen aufweist. Sie kann Text in Blöcken oder Zeichen aus einem Datenstrom lesen.
Der XmlTextReader bietet die folgenden Funktionen:
- Implementiert die Regeln, nach denen XML wohlgeformt sein muss.
- Stellt sicher, dass die DTD wohlgeformt ist. Verwendet jedoch die DTD nicht für die Überprüfung, zum Erweitern von Entitätsverweisen oder zum Hinzufügen von Standardattributen.
- Führt keine Überprüfung gegen DTDs oder Schemas durch.
- Überprüft die Wohlgeformtheit von DOCTYPE-Knoten.
- Überprüft die Wohlgeformtheit der Entitäten. Für EntityReference-Knotentypen wird ein einziger, leerer EntityReference-Knoten zurückgegeben. Ein leerer EntityReference-Knoten ist ein Knoten, dessen Value-Eigenschaft string.Empty ist. Der Grund hierfür ist, dass keine DTD oder kein Schema vorhanden ist, mit der bzw. dem der Entitätsverweis erweitert werden kann. Der XmlTextReader stellt sicher, dass die gesamte DTD, einschließlich der EntityReference-Knoten, wohlgeformt ist.
- Stellt einen leistungsfähigen XML-Parser bereit, da beim XmlTextReader nicht der Aufwand anfällt, der für die Gültigkeitsprüfung erforderlich ist.
Der XmlTextReader kann Daten aus unterschiedlichen Eingaben lesen, z. B. aus einem Streamobjekt, einem TextReader-Objekt oder einem URL, der einen lokalen Dateispeicherort oder eine Website angibt.
Der XmlTextReader findet externe Ressourcen, z. B DTDs, mit Hilfe eines XmlResolver, so dass die Wohlgeformtheit der DTDs überprüft werden kann. Weitere Informationen über den XmlResolver finden Sie unter Auflösen von Ressourcen mit dem XmlResolver.
Die Codierungsdeklaration <?xml version="1.0" encoding="ISO-8859-5"?>
enthält ein Codierungsattribut, das die Codierung für das betreffende Dokument festlegt. Der XmlTextReader hat eine Encoding-Eigenschaft, die die Zeichencodierung zurückgibt, die im Codierungsattribut in der XML-Deklaration angegeben ist. Wenn kein Codierungsattribut gefunden wird, wird die Standardeinstellung für das Dokument auf UTF-8 gesetzt.
Wird eine externe Ressource gelesen, z. B. eine DTD, mit der ein Entitätsverweis oder eine Schemadatei erweitert wird, wird die Codierung auf den Codierungswert gesetzt, der in dem externen Verweis enthalten ist. Wenn in dem externen Verweis keine Codierung gefunden wird, wird die Standardeinstellung auf UTF-8 gesetzt. Der XmlTextReader unterstützt zahlreiche Codierungen, da er die System.Text.Encoding-Klasse verwendet. Deshalb werden alle Codierungen, die von dieser Klasse unterstützt werden, auch vom XmlTextReader unterstützt. Die einzigen Codierungen, die nicht unterstützt werden, sind Codierungen, die die <?xml
-Sequenz anderen Bytewerten zuordnen als UTF-8, z. B. UTF-7 und EBCDIC.
Siehe auch
Lesen vollständiger Inhalte mit Hilfe von Zeichenstreams | Informationen über Dokumenttypdeklarationen | Behandeln von Leerräumen mit dem "XmlTextReader" | Normalisierung von Attributwerten | Ausnahmebehandlung mit "XmlException" in "XmlTextReader" | XmlReader-Klasse | XmlReader-Member | XmlNodeReader-Klasse | XmlNodeReader-Member | XmlTextReader-Klasse | XmlTextReader-Member | XmlValidatingReader-Klasse | XmlValidatingReader