Lesen von XML-Daten mit dem "XmlTextReader"

Die XmlTextReader-Klasse ist eine Implementierung von XmlReader und stellt einen Parser über XML-Text bereit. Sie implementiert die Regeln, nach denen XML wohlgeformt sein muss. Diese Klasse ist weder ein Parser mit Validierung noch ein Parser ohne Validierung, da sie keine DTD- oder Schemainformationen verwendet. Sie kann Text in Blöcken oder Zeichen aus einem Datenstream lesen.

HinweisHinweis

Die empfohlene Vorgehensweise für .NET Framework, Version 2.0 besteht im Erstellen von XmlReader-Instanzen mithilfe der XmlReaderSettings-Klasse und der Create-Methode.Dadurch können Sie alle Vorteile der in .NET Framework 2.0 eingeführten neuen Funktionen uneingeschränkt nutzen.Weitere Informationen finden Sie unter Erstellen von XML-Readern.

Übersicht

Der XmlTextReader stellt die folgenden Funktionen bereit:

  • Implementiert die Regeln, nach denen XML wohlgeformt sein muss.

  • Stellt sicher, dass die DTD wohlgeformt ist. Verwendet jedoch die DTD nicht für die Validierung oder zum Hinzufügen von Standardattributen. Die DTD wird für die Entitätserweiterung verwendet, wenn die EntityHandling-Eigenschaft auf ExpandEntities festgelegt ist, oder wenn die ResolveEntity-Methode für einen EntityReference-Knoten aufgerufen wird.

  • Gibt unerwartete Entitätsverweise als EntityReference-Knoten zurück, wenn die EntityHandling-Eigenschaft auf ExpandCharEntities festgelegt ist (dies ist die Standardeinstellung). Wenn die Entitätsverweis nicht in einer DTD definiert ist, zeigt der Reader keinen Fehler an, sofern die ResolveEntity-Methode für den Knoten nicht aufgerufen wird.

  • Stellt eine Option zum Deaktivieren der XML-Normalisierung neuer Zeilen und Attributwerte bereit. Die Normalisierung ist in der Standardeinstellung deaktiviert.

  • Führt keine Validierung anhand von DTDs oder Schemata durch.

  • Stellt einen schnellen XML-Parser bereit, da beim XmlTextReader nicht der Mehraufwand anfällt, der für die Validierung erforderlich ist.

Der XmlTextReader kann Daten aus unterschiedlichen Eingaben lesen, z. B. aus einem Stream-Objekt, einem TextReader oder einer URL, der einen lokalen Dateispeicherort oder eine Website angibt.

Der XmlTextReader findet externe Ressourcen, z. B DTDs, mithilfe eines XmlResolver, sodass die Wohlgeformtheit der DTDs überprüft werden kann. Weitere Informationen zum 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 verfügt über eine Encoding-Eigenschaft, die die Zeichencodierung zurückgibt, die im Codierungsattribut in der XML-Deklaration angegeben ist. Wenn kein Codierungsattribut gefunden wird, wird als Standardeinstellung für das Dokument UTF-8 oder UTF-16 festgelegt, abhängig von den ersten zwei Bytes des Streams.

Wird eine externe Ressource gelesen, z. B. eine DTD, mit der ein Entitätsverweis oder eine Schemadatei erweitert wird, wird für die Codierung der Codierungswert festgelegt, der in dem externen Verweis enthalten ist. Wenn im externen Verweis keine Codierung gefunden wird, wird der Standard auf UTF-8 oder UTF-16 festgelegt. Der XmlTextReader unterstützt viele Codierungen, da er die 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

Konzepte

Lesen von XML mit dem "XmlReader"

Weitere Ressourcen

Verwenden der "XmlReader"-Klasse