Delen via


Externe resources oplossen

De eigenschap XmlResolver van het XmlDocument wordt door de XmlDocument-klasse gebruikt om resources te zoeken die niet inline zijn in de XML-gegevens, zoals definities van externe documenttypen (DTD's), entiteiten en schema's. Deze items kunnen zich op een netwerk of op een lokaal station bevinden en kunnen worden geïdentificeerd door een URI (Uniform Resource Identifier). Hierdoor kan XmlDocument EntityReference-knooppunten die aanwezig zijn in het document oplossen en het document valideren op basis van de externe DTD of het schema.

Volledig vertrouwde XmlDocument

De eigenschap XmlResolver is van invloed op de functionaliteit van de methode XmlDocument.Load . In de onderstaande tabel ziet u hoe de eigenschap XmlDocument.XmlResolver werkt wanneer het XmlDocument-object volledig wordt vertrouwd. In de volgende tabel ziet u de xmlDocument.Load-methoden wanneer de invoer voor de load een TextReader, String, Stream of URI is. Deze tabel is niet van toepassing op de load-methode als het XmlDocument wordt geladen vanuit een XmlReader.

XmlResolver-eigenschap Functie Opmerkingen
De eigenschap is ingesteld op een XmlResolver-klasse die eerder is gemaakt en waarvoor de gebruiker al eigenschappen heeft ingesteld. XmlDocument maakt gebruik van xmlResolver die wordt gegeven om bestandsnamen op te lossen, om verwijzingen naar externe resources, zoals DTD's, entiteiten en schema's, op te lossen.

XmlResolver wordt ook gebruikt bij het omzetten van externe resources die nodig zijn bij het toevoegen of bewerken van knooppunten in het XmlDocument.
De XmlResolver die aan het XmlDocument wordt gegeven, is de resolver die wordt gebruikt wanneer externe resources moeten worden gevonden en opgelost.
De eigenschap is ingesteld op null (niets in Microsoft Visual Basic .NET). Functies waarvoor een externe resource is vereist, worden niet ondersteund, zoals het zoeken naar een extern schema of DTD. Externe entiteiten worden niet opgelost en het uitvoeren van bewerkingsfuncties, zoals het invoegen van entiteitsknooppunten waarvoor oplossing is vereist, worden niet ondersteund. XmlDocument laadt bestanden als anoniem en probeert geen andere resources op te lossen.
De eigenschap is niet ingesteld, maar heeft de standaardstatus. Een XmlUrlResolver met NULL-referenties wordt geïnstantieerd en gebruikt door het XmlDocument bij het omzetten van bestandsnamen, het zoeken van externe DTD's, entiteiten en schema's en null-referenties worden gebruikt bij het bewerken van knooppunten.

In de volgende tabel ziet u de methode XmlDocument.Load wanneer de invoer voor de load een XmlReader is en het XmlDocument volledig wordt vertrouwd.

XmlResolver-eigenschap Functie Opmerkingen
De xmlResolver-klasse die door het XmlDocument wordt gebruikt, is dezelfde klasse die wordt gebruikt door de XmlReader. Het XmlDocument maakt gebruik van de XmlResolver die is toegewezen aan xmlReader.

De eigenschap XmlDocument.Resolver kan niet worden ingesteld, ongeacht het xmlDocument-vertrouwensniveau, omdat er een XmlResolver van xmlReader wordt opgehaald. U kunt de instellingen van xmlResolver van XmlResolver van XmlResolver niet overschrijven door de eigenschap XmlResolver van het XmlDocument in te stellen.
De XmlReader kan de XmlTextReader, XmlValidatingReader of een aangepaste geschreven lezer zijn. Als de gebruikte lezer ondersteuning biedt voor entiteitsomzetting, worden externe entiteiten omgezet. Als de doorgegeven lezer geen ondersteuning biedt voor entiteitsverwijzingen, worden entiteitsverwijzingen niet omgezet.

Semi-Trusted XmlDocument

In de volgende tabel ziet u hoe de eigenschap XmlDocument.XmlResolver werkt wanneer het object semi-vertrouwd is. Deze tabel is van toepassing op de xmlDocument.Load-methoden wanneer de invoer voor de load een TextReader, String, Stream of URI is. Deze tabel is niet van toepassing op de load-methode als het XmlDocument wordt geladen vanuit een XmlReader.

XmlResolver-eigenschap Functie Opmerkingen
In het semi-vertrouwde scenario kan de eigenschap XmlResolver niet worden ingesteld op iets anders dan null. Een XmlUrlResolver met null-referenties wordt geïnstantieerd en gebruikt door het XmlDocument bij het omzetten van bestandsnamen, het zoeken van externe DTD's, entiteiten en schema's en null-referenties worden gebruikt bij het bewerken van knooppunten. Dit gedrag is identiek aan het gedrag wanneer de eigenschap XmlResolver niet is ingesteld, maar de standaardstatus heeft.

Het XmlDocument maakt gebruik van anonieme machtigingen voor alle acties.
De eigenschap is ingesteld op null (niets in Microsoft Visual Basic .NET). Er worden geen functies ondersteund waarvoor een externe resource is vereist, zoals het zoeken naar een extern schema of DTD. Externe entiteiten worden niet opgelost en het uitvoeren van bewerkingsfuncties zoals het invoegen van entiteitsknooppunten waarvoor oplossing is vereist, worden niet ondersteund. Wanneer de eigenschap null is, is het gedrag hetzelfde, ongeacht of het XmlDocument volledig wordt vertrouwd of semi-vertrouwd.
De eigenschap is niet ingesteld, maar heeft de standaardstatus. Een XmlUrlResolver met null-referenties wordt geïnstantieerd en gebruikt door het XmlDocument bij het omzetten van bestandsnamen, het zoeken van externe DTD's, entiteiten en schema's en null-referenties worden gebruikt bij het bewerken van knooppunten. Het XmlDocument maakt gebruik van anonieme machtigingen voor alle acties.

Deze tabel is van toepassing op de methode XmlDocument.Load wanneer de invoer voor de load een XmlReader is en het XmlDocument semi-vertrouwd is.

XmlResolver-eigenschap Functie Opmerkingen
De xmlResolver-klasse die door het XmlDocument wordt gebruikt, is dezelfde klasse die wordt gebruikt door de XmlReader. Het XmlDocument maakt gebruik van de XmlResolver die is toegewezen aan xmlReader.

De eigenschap XmlDocument.Resolver kan niet worden ingesteld, ongeacht het xmlDocument-vertrouwensniveau, omdat er een XmlResolver van xmlReader wordt opgehaald. U kunt de instellingen van xmlReaders XmlResolver niet overschrijven door de eigenschap XmlResolver van het XmlDocument in te stellen.
De XmlReader kan xmlTextReader zijn, valideren XmlReaderof een aangepaste geschreven lezer. Als de gebruikte lezer ondersteuning biedt voor entiteitsomzetting, worden externe entiteiten omgezet. Als de doorgegeven lezer geen ondersteuning biedt voor entiteitsverwijzingen, worden entiteitsverwijzingen niet omgezet.

Als u xmlResolver instelt op de juiste referenties, hebt u toegang tot externe resources.

Notitie

De eigenschap XmlResolver kan niet worden opgehaald. Dit helpt voorkomen dat een gebruiker een XmlResolver opnieuw gebruikt waarvoor referenties zijn ingesteld. Als een XmlTextReader of validatie XmlReader wordt gebruikt om het XmlDocument te laden en de XmlDocument een resolver heeft die is ingesteld, worden de resolvers van deze lezers niet in de cache opgeslagen door xmlDocument na de laadfase, omdat dit ook een beveiligingsrisico vormt.

Zie de sectie Opmerkingen van de XmlResolver referentiepagina voor meer informatie.

Zie ook