Laden von Daten aus einem Reader
Aktualisiert: November 2007
Wenn ein XML-Dokument mithilfe der Load-Methode und einem Parameter eines XmlReader geladen wird, weist das Verhalten Unterschiede zu dem Verhalten auf, das beim Laden von Daten aus anderen Formaten eintritt. Wenn sich der Reader in seinem Ausgangszustand befindet, verarbeitet Load den gesamten Inhalt des Readers und erstellt das XML-DOM (Dokumentobjektmodell) aus allen Daten im Reader.
Wenn sich der Reader bereits auf einem Knoten im Dokument befindet und der Reader an die Load-Methode übergeben wird, versucht Load, den aktuellen Knoten und alle zugehörigen nebengeordneten Elemente zu lesen. Dies erfolgt bis zum Endtag, das die aktuelle Hierarchietiefe abschließt. Ob Load erfolgreich ist, hängt vom Knoten ab, auf dem sich der Reader beim Ladeversuch befindet, da Load überprüft, ob das XML aus dem Reader wohlgeformt ist. Wenn das XML nicht wohlgeformt ist, löst Load eine Ausnahme aus. In der folgende Gruppe von Knoten sind beispielsweise zwei Elemente der Stammebene enthalten, das XML ist nicht wohlgeformt und Load löst eine Ausnahme aus.
- Ein Kommentarknoten, auf den ein Elementknoten, ein weiterer Elementknoten und dann ein EndElement-Knoten folgt.
Die folgende Gruppe von Knoten erstellt ein unvollständiges DOM, da auf der Stammebene kein Element vorhanden ist.
- Ein Kommentarknoten, auf den ein ProcessingInstruction-Knoten, ein Kommentarknoten und dann ein EndElement-Knoten folgt.
Dies löst keine Ausnahme aus, und die Daten werden geladen. Sie können an der obersten Position dieser Knoten ein Stammelement hinzufügen und wohlgeformtes XML erstellen, das ohne Fehler gespeichert werden kann.
Wenn sich der Reader auf einem Endknoten befindet, der für die Stammebene eines Dokuments ungültig ist (z. B. ein Leerraum- oder ein Attributknoten), setzt der Reader den Lesevorgang solange fort, bis er sich auf einem Knoten befindet, der als Stamm verwendet werden kann. Das Dokument beginnt an dieser Stelle mit dem Laden.
In der Standardeinstellung überprüft Load nicht mithilfe der DTD (Document Type Definition) oder der Schemavalidierung, ob das XML gültig ist. Es wird nur überprüft, ob das XML wohlgeformt ist. Damit die Validierung ausgeführt wird, muss mithilfe der XmlReaderSettings-Klasse ein XmlReader erstellt werden. Die XmlReader-Klasse kann die Validierung mithilfe der DTD oder des XSD-Schemas (Schema Definition Language) erzwingen. Die ValidationType-Eigenschaft der XmlReaderSettings-Klasse bestimmt, ob die XmlReader-Instanz eine Validierung erzwingt. Weitere Informationen zum Validieren von XML-Daten mit dem XmlReader finden Sie unter dem Thema Validieren von XML-Daten mit "XmlReader".