Rozpoznawanie zasobów zewnętrznych

Właściwość XmlResolver xmlDocument jest używana przez klasę XmlDocument do lokalizowania zasobów, które nie są wbudowane w danych XML, takich jak definicje typów dokumentów zewnętrznych (DTD), jednostki i schematy. Te elementy mogą znajdować się w sieci lub na dysku lokalnym i można je zidentyfikować za pomocą identyfikatora URI (Uniform Resource Identifier). Dzięki temu narzędzie XmlDocument może rozpoznać węzły EntityReference , które znajdują się w dokumencie, i zweryfikować dokument zgodnie z zewnętrznym identyfikatorem DTD lub schematem.

W pełni zaufany dokument XmlDocument

Właściwość XmlResolver wpływa na funkcjonalność metody XmlDocument.Load . W poniższej tabeli przedstawiono działanie właściwości XmlDocument.XmlResolver , gdy obiekt XmlDocument jest w pełni zaufany. W poniższej tabeli przedstawiono metody XmlDocument.Load , gdy dane wejściowe do ładowania to TextReader, String, Stream lub URI. Ta tabela nie ma zastosowania do metody Load , jeśli plik XmlDocument jest ładowany z elementu XmlReader.

Właściwość XmlResolver Function Uwagi
Właściwość jest ustawiona na klasę XmlResolver , która została wcześniej utworzona i ma już ustawione właściwości przez użytkownika. Narzędzie XmlDocument używa elementu XmlResolver podanego do rozpoznawania nazw plików w celu rozpoznawania odwołań do zasobów zewnętrznych, takich jak DTD, jednostki i schematy.

Element XmlResolver jest również używany podczas rozpoznawania zasobów zewnętrznych potrzebnych podczas dodawania lub edytowania węzłów w pliku XmlDocument.
Element XmlResolver podany w kodzie XmlDocument to narzędzie rozpoznawania, które jest używane za każdym razem, gdy zasoby zewnętrzne muszą być zlokalizowane i rozwiązane.
Właściwość jest ustawiona na wartość null (Nic w programie Microsoft Visual Basic .NET). Funkcje wymagające zasobu zewnętrznego nie są obsługiwane, takie jak lokalizowanie schematu zewnętrznego lub DTD. Nie zostaną również rozwiązane jednostki zewnętrzne i wykonywanie funkcji edycji, takich jak wstawianie węzłów jednostki wymagających rozwiązania, nie są obsługiwane. Dokument XmlDocument ładuje pliki jako anonimowe i nie próbuje rozpoznać żadnych innych zasobów.
Właściwość nie jest ustawiona, ale pozostawiona w stanie domyślnym. Podczas edytowania węzłów podczas edytowania węzłów będą tworzone wystąpienia klasy XmlUrlResolver z poświadczeniami NULL i będą używane przez dokument XmlDocument.

W poniższej tabeli przedstawiono metodę XmlDocument.Load , gdy dane wejściowe do modułu Load są elementem XmlReader , a dokument XmlDocument jest w pełni zaufany.

Właściwość XmlResolver Function Uwagi
Klasa XmlResolver używana przez element XmlDocument jest tą samą klasą używaną przez element XmlReader. Element XmlDocument używa elementu XmlResolver przypisanego do elementu XmlReader.

Nie można ustawić właściwości XmlDocument.Resolver, niezależnie od poziomu zaufania XmlDocument, ponieważ otrzymuje element XmlResolver z elementu XmlReader. Nie można spróbować zastąpić ustawień xmlReaders XmlResolver, ustawiając właściwość XmlResolver xmlDocument.
Element XmlReader może być elementem XmlTextReader, XmlValidatingReader lub niestandardowym czytnikiem. Jeśli używany czytnik obsługuje rozpoznawanie jednostek, jednostki zewnętrzne zostaną rozwiązane. Jeśli przekazany czytelnik nie obsługuje odwołań do jednostek, odwołania do jednostek nie zostaną rozwiązane.

Częściowo zaufany dokument XmlDocument

W poniższej tabeli przedstawiono działanie właściwości XmlDocument.XmlResolver , gdy obiekt jest częściowo zaufany. Ta tabela ma zastosowanie do metod XmlDocument.Load, gdy dane wejściowe do ładowania to TextReader, String, Stream lub URI. Ta tabela nie ma zastosowania do metody Load , jeśli plik XmlDocument jest ładowany z elementu XmlReader.

Właściwość XmlResolver Function Uwagi
W scenariuszu częściowo zaufanym właściwość XmlResolver nie może być ustawiona na wartość inną niż null. Wystąpienie elementu XmlUrlResolver z poświadczeniami o wartości null zostanie utworzone i użyte przez element XmlDocument podczas rozpoznawania nazw plików, lokalizowania zewnętrznych identyfikatorów DTD, jednostek i schematów oraz poświadczeń o wartości null podczas edytowania węzłów. To zachowanie jest identyczne z zachowaniem, gdy właściwość XmlResolver nie jest ustawiona, ale pozostawiona w stanie domyślnym.

Dokument XmlDocument używa anonimowych uprawnień dla wszystkich akcji.
Właściwość jest ustawiona na wartość null (Nic w programie Microsoft Visual Basic .NET). Nie są obsługiwane żadne funkcje wymagające zasobu zewnętrznego, takie jak lokalizowanie schematu zewnętrznego lub dtD. Nie zostaną również rozwiązane jednostki zewnętrzne i wykonywanie funkcji edycji, takich jak wstawianie węzłów jednostki wymagających rozwiązania, nie są obsługiwane. Jeśli właściwość ma wartość null, zachowanie jest takie samo niezależnie od tego, czy dokument XmlDocument jest w pełni zaufany lub częściowo zaufany.
Właściwość nie jest ustawiona, ale pozostawiona w stanie domyślnym. Wystąpienie elementu XmlUrlResolver z poświadczeniami o wartości null zostanie utworzone i użyte przez element XmlDocument podczas rozpoznawania nazw plików, lokalizowania zewnętrznych identyfikatorów DTD, jednostek i schematów oraz poświadczeń o wartości null podczas edytowania węzłów. Dokument XmlDocument używa anonimowych uprawnień dla wszystkich akcji.

Ta tabela dotyczy metody XmlDocument.Load , gdy dane wejściowe do modułu Load są elementem XmlReader, a dokument XmlDocument jest częściowo zaufany.

Właściwość XmlResolver Function Uwagi
Klasa XmlResolver używana przez element XmlDocument jest taka sama, która jest używana przez element XmlReader. Element XmlDocument używa elementu XmlResolver przypisanego do elementu XmlReader.

Nie można ustawić właściwości XmlDocument.Resolver, niezależnie od poziomu zaufania XmlDocument, ponieważ otrzymuje element XmlResolver z elementu XmlReader. Nie można spróbować zastąpić ustawień xmlReadersXmlResolver, ustawiając właściwość XmlResolver xmlDocument.
Element XmlReader może być elementem XmlTextReader, weryfikowaniem XmlReaderlub niestandardowym czytnikiem. Jeśli używany czytnik obsługuje rozpoznawanie jednostek, jednostki zewnętrzne zostaną rozwiązane. Jeśli czytelnik przekazany w programie nie obsługuje odwołań do jednostek, odwołania do jednostek nie zostaną rozwiązane.

Ustawienie elementu XmlResolver tak, aby zawierało poprawne poświadczenia, zezwala na dostęp do zasobów zewnętrznych.

Uwaga

Nie ma możliwości pobrania właściwości XmlResolver . Pomaga to uniemożliwić użytkownikowi ponowne użycie elementu XmlResolver , na którym ustawiono poświadczenia. Ponadto jeśli element XmlTextReader lub walidacja XmlReader jest używany do ładowania elementu XmlDocument, a element XmlDocument ma ustawioną funkcję rozpoznawania, moduły rozpoznawania nie są buforowane przez element XmlDocument po fazie ładowania, ponieważ stanowi to również zagrożenie bezpieczeństwa.

Aby uzyskać więcej informacji, zobacz sekcję Uwagi na stronie referencyjnej XmlResolver .

Zobacz też