Sdílet prostřednictvím


Překlad externích prostředků

XmlResolver vlastnost XmlDocument je používána XmlDocument třídy k vyhledání prostředků, které nejsou vloženy v datech XML, jako jsou definice typu externího dokumentu (DTD), entity a schémata. Tyto položky mohou být umístěny v síti nebo na místní jednotce a identifikovat je identifikátor URI (Uniform Resource Identifier). Díky tomu může XmlDocument přeložit uzly EntityReference , které jsou přítomné v dokumentu, a ověřit dokument podle externího DTD nebo schématu.

Plně důvěryhodný dokument XmlDocument

XmlResolver vlastnost ovlivňuje funkce XmlDocument.Load metoda. Následující tabulka ukazuje, jak XmlDocument.XmlResolver vlastnost funguje, když XmlDocument objekt je plně důvěryhodný. Následující tabulka ukazuje XmlDocument.Load metody, když vstup load je TextReader, String, Stream nebo URI. Tato tabulka se nevztahuje na Load metoda, pokud XmlDocument je načten z XmlReader.

XmlResolver – vlastnost Function Notes
Vlastnost je nastavena na XmlResolver třídy, která byla dříve vytvořena a má vlastnosti již nastaveny uživatelem. XmlDocument používá XmlResolver, který je přidělen k překladu názvů souborů, k překladu odkazů na externí prostředky, jako jsou DTD, entity a schémata.

XmlResolver se také používá při překladu externích prostředků, které jsou potřeba při přidávání nebo úpravách uzlů v xmldocument.
XmlResolver zadaný xmldocument je překladač, který se používá při každém umístění a překladu externích prostředků.
Vlastnost je nastavena na hodnotu null (Nothing v jazyce Microsoft Visual Basic .NET). Funkce, které vyžadují externí prostředek, se nepodporují, například vyhledání externího schématu nebo DTD. Externí entity nebudou vyřešeny a nebudou podporovány funkce úprav, jako je vkládání uzlů entit vyžadujících překlad. XmlDocument načte soubory jako anonymní a nepokouší se přeložit žádné jiné prostředky.
Vlastnost není nastavená, ale ponechá ji ve výchozím stavu. XmlUrlResolver s přihlašovacími údaji NULL se vytvoří instance a použije XmlDocument při překladu názvů souborů, vyhledání externích DTD, entit a schémat a přihlašovacích údajů null se použijí při úpravách uzlů.

Následující tabulka ukazuje XmlDocument.Load metoda, když vstup load je XmlReader a XmlDocument je plně důvěryhodný.

XmlResolver – vlastnost Function Notes
XmlResolver třída používaná XmlDocument je stejná třída, která je používána XmlReader. XmlDocument používá XmlResolver, který byl přiřazen XmlReader.

Vlastnost XmlDocument.Resolver nelze nastavit bez ohledu na úroveň důvěryhodnosti XmlDocument , protože získává XmlResolver z XmlReader. Nelze se pokusit přepsat nastavení XmlReaders XmlResolver nastavením XmlResolver vlastnost XmlDocument.
XmlReader může být XmlTextReader, XmlValidatingReader nebo vlastní psaná čtečka. Pokud čtečka používá podporu překladu entit, přeloží se externí entity. Pokud předaný čtenář nepodporuje odkazy na entity, odkazy na entity se nepřeloží.

Částečně důvěryhodný dokument XmlDocument

Následující tabulka ukazuje, jak XmlDocument.XmlResolver vlastnost funguje, když je objekt částečně důvěryhodný. Tato tabulka platí pro XmlDocument.Load metody, když vstup load je TextReader, String, Stream nebo URI. Tato tabulka se nevztahuje na Load metoda, pokud XmlDocument je načten z XmlReader.

XmlResolver – vlastnost Function Notes
V částečně důvěryhodném scénáři nelze vlastnost XmlResolver nastavit na nic jiného než null. XmlUrlResolver s přihlašovacími údaji null se vytvoří instance a použije xmldocument při překladu názvů souborů, vyhledání externích DTD, entit a schémat a přihlašovacích údajů null při úpravách uzlů. Toto chování je identické s chováním, pokud XmlResolver vlastnost není nastavena, ale ponechána ve výchozím stavu.

XmlDocument používá anonymní oprávnění pro všechny akce.
Vlastnost je nastavena na hodnotu null (Nothing v jazyce Microsoft Visual Basic .NET). Nejsou podporovány žádné funkce, které vyžadují externí prostředek, například vyhledání externího schématu nebo DTD. Externí entity nebudou vyřešeny a nebudou podporovány funkce úprav, jako je vkládání uzlů entit vyžadujících překlad. Pokud je vlastnost null, chování je stejné bez ohledu na to, zda XmlDocument je plně důvěryhodný nebo částečně důvěryhodný.
Vlastnost není nastavená, ale ponechá ji ve výchozím stavu. XmlUrlResolver s přihlašovacími údaji null se vytvoří instance a použije xmldocument při překladu názvů souborů, vyhledání externích DTD, entit a schémat a přihlašovacích údajů null při úpravách uzlů. XmlDocument používá anonymní oprávnění pro všechny akce.

Tato tabulka platí pro XmlDocument.Load metoda, když vstup load je XmlReader a XmlDocument je částečně důvěryhodný.

XmlResolver – vlastnost Function Notes
XmlResolver třída používaná XmlDocument je stejný, který používá XmlReader. XmlDocument používá XmlResolver, který byl přiřazen XmlReader.

Vlastnost XmlDocument.Resolver nelze nastavit bez ohledu na úroveň důvěryhodnosti XmlDocument , protože získává XmlResolver z XmlReader. Nelze se pokusit přepsat nastavení XmlReaders XmlResolver nastavením XmlResolver Vlastnost XmlResolver XmlDocument.
XmlReader může být XmlTextReader, ověřování XmlReader, nebo vlastní psaný čtenář. Pokud čtečka používá podporu překladu entit, přeloží se externí entity. Pokud čtenář předaný nepodporuje odkazy na entity, odkazy na entity se nepřeloží.

Nastavení XmlResolveru tak, aby obsahovalo správné přihlašovací údaje, umožňuje přístup k externím prostředkům.

Poznámka:

Neexistuje způsob, jak načíst XmlResolver vlastnost. To pomáhá zabránit uživateli v opětovném použití xmlResolveru , u kterého byly nastaveny přihlašovací údaje. Také, pokud XmlTextReader nebo ověřování XmlReader se používá k načtení XmlDocument a XmlDocument má překladač, který byl nastaven, překladače z těchto čtenářů nejsou uloženy do mezipaměti XmlDocument po fázi načtení, protože to také představuje bezpečnostní riziko.

Další informace najdete v části Poznámky na XmlResolver referenční stránce.

Viz také