Udostępnij za pośrednictwem


Rozwiązywanie zasobów zewnętrznych

Właściwość XmlResolver klasy XmlDocument jest używana przez klasę do lokalizowania zasobów, które nie są osadzone bezpośrednio w danych XML, takich jak zewnętrzne definicje typów dokumentów (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 Funkcja 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 null (Nic w 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 zewnętrzne jednostki, a funkcje edycji takie jak wstawianie węzłów jednostek wymagających rozwiązania, nie będą 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 rozwiązywania nazw plików, lokalizowania zewnętrznych DTD, encji i schematów przez XmlDocument, będą tworzone wystąpienia klasy XmlUrlResolver z poświadczeniami NULL, a poświadczenia NULL będą używane podczas edytowania węzłów.

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

Właściwość XmlResolver Funkcja 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 XmlResolver z XmlReader. Nie można próbować nadpisać ustawień XmlReaders'a XmlResolver, ustawiając właściwość XmlResolver obiektu XmlDocument.
XmlReader może być 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, jak działa właściwość XmlDocument.XmlResolver, gdy obiekt jest częściowo zaufany. Ta tabela ma zastosowanie do metod XmlDocument.Load, gdy dane wejściowe dla ł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 Funkcja 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 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, a funkcje edycyjne, takie jak wstawianie węzłów jednostek 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 metody Load są elementem XmlReader, a XmlDocument ma częściowe zaufanie.

Właściwość XmlResolver Funkcja 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 zastąpić ustawień XmlReadersXmlResolver, ustawiając właściwość XmlResolver obiektu XmlDocument.
XmlReader może być XmlTextReader, weryfikującym XmlReader lub niestandardowym czytnikiem. Jeśli używany czytnik obsługuje rozpoznawanie jednostek, jednostki zewnętrzne zostaną rozwiązane. Jeśli używany parser nie obsługuje odwołań do encji, odwołania do encji 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 odzyskania właściwości XmlResolver. Pomaga to zapobiec ponownemu użyciu obiektu XmlResolver, dla którego ustawiono poświadczenia. Ponadto, jeśli w celu załadowania XmlDocument używany jest XmlTextReader lub walidacja, a XmlDocument ma ustawiony resolver, resolwery z tych czytników nie są buforowane przez 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ż