Ładowanie danych z czytnika
Jeśli dokument XML jest ładowany przy użyciu Load metody i parametru , XmlReaderistnieją różnice w zachowaniu, które występuje w porównaniu z zachowaniem ładowania danych z innych formatów. Jeśli czytnik jest w stanie początkowym, Load używa całej zawartości czytnika i tworzy model DOM (XML Document Object Model) ze wszystkich danych w czytniku.
Jeśli czytelnik znajduje się już w węźle w dokumencie, a czytelnik jest następnie przekazywany do Load metody, Load próbuje odczytać bieżący węzeł i wszystkie jego elementy równorzędne, aż do tagu końcowego, który zamyka bieżącą głębokość do pamięci. Powodzenie próby Load zależy od węzła, od którego następuje próba załadowania czytnika, ponieważ Load sprawdza, czy kod XML z czytnika jest poprawnie sformułowany. Jeśli kod XML nie jest poprawnie sformułowany, Load zgłasza wyjątek. Na przykład poniższy zestaw węzłów zawiera dwa elementy na poziomie głównym, kod XML nie jest poprawnie sformułowany i Load zgłasza wyjątek.
- Węzeł komentarza, po którym następuje węzeł Element, po którym następuje węzeł Element, a następnie węzeł EndElement.
Poniższy zestaw węzłów tworzy niekompletny dom, ponieważ nie ma elementu na poziomie głównym.
- Węzeł komentarza, po którym następuje węzeł ProcessingInstruction, po którym następuje węzeł Komentarz, po którym następuje węzeł EndElement.
Nie zgłasza to wyjątku i dane są ładowane. Element główny można dodać na początku tych węzłów i utworzyć poprawnie sformułowany kod XML, który można zapisać bez błędu.
Jeśli czytelnik jest umieszczony w węźle liścia, który jest nieprawidłowy dla poziomu głównego dokumentu (na przykład biały znak lub węzeł atrybutu), czytelnik będzie nadal odczytywać, dopóki nie zostanie umieszczony w węźle, który może być używany dla katalogu głównego. Dokument rozpoczyna ładowanie w tym momencie.
Domyślnie nie sprawdza, Load czy kod XML jest prawidłowy przy użyciu definicji typu dokumentu (DTD) czy weryfikacji schematu. Sprawdza tylko, czy kod XML jest poprawnie sformułowany. Aby można było przeprowadzić walidację, należy utworzyć klasę XmlReaderXmlReaderSettings przy użyciu klasy . Klasa XmlReader może wymusić walidację przy użyciu schematu DTD lub schematu języka definicji schematu (XSD). Właściwość ValidationType klasy XmlReaderSettings określa, czy XmlReader wystąpienie wymusza walidację. Aby uzyskać więcej informacji na temat sprawdzania poprawności danych XML, zobacz sekcję Uwagi na stronie referencyjnej XmlReader .