Condividi tramite


Risoluzione di risorse esterne

La proprietà XmlResolver di XmlDocument viene utilizzata dalla classe XmlDocument per individuare le risorse non inline nei dati XML, quali DTD, entità e schemi esterni. Questi elementi possono trovarsi in una rete o in un'unità locale ed essere identificati tramite un URI (Uniform Resource Identifier) . Questo consente a XmlDocument di risolvere i nodi EntityReference presenti nel documento e convalidare il documento in base allo schema o alla DTD esterna.

XmlDocument completamente attendibile

La proprietà XmlResolver influisce sulla funzionalità del metodo XmlDocument.Load. Nella tabella seguente viene illustrato il funzionamento della proprietà XmlDocument.XmlResolver quando l'oggetto XmlDocument è completamente attendibile. Vengono inoltre indicati i metodi XmlDocument.Load quando l'input di Load è TextReader, String, Stream o URI. Il contenuto della tabella non si applica al metodo Load se XmlDocument viene caricato da un oggetto XmlReader.

Proprietà XmlResolver

Funzione

Note

La proprietà è impostata su una classe XmlResolver creata in precedenza e con proprietà già impostate dall'utente.

XmlDocument consente di utilizzare l'XmlResolver assegnato per risolvere nomi di file e riferimenti a risorse esterne, quali DTD, entità e schemi.

XmlResolver viene utilizzato anche quando si risolvono risorse esterne necessarie per l'aggiunta o la modifica di nodi in XmlDocument.

L'XmlResolver assegnato a XmlDocument è il sistema di risoluzione utilizzato quando è necessario individuare e risolvere risorse esterne.

La proprietà è impostata su null (Nothing in Microsoft Visual Basic .NET).

Non sono supportate le funzionalità che richiedono una risorsa esterna, ad esempio l'individuazione di uno schema o una DTD esterna. Le entità esterne non verranno risolte e non è supportata la modifica delle funzioni, come l'inserimento di nodi di entità che richiedono la risoluzione.

XmlDocument consente di caricare i file come anonimi e non tenta di risolvere altre risorse.

La proprietà non viene impostata, ma rimane nello stato predefinito.

Verrà creata l'istanza di un XmlUrlResolver con credenziali NULL, che verrà utilizzato da XmlDocument durante la risoluzione di nomi di file e l'individuazione di DTD, entità e schemi esterni. Le credenziali null verranno utilizzate per la modifica dei nodi.

 

Viene inoltre indicato il metodo XmlDocument.Load quando l'input di Load è XmlReader e XmlDocument è completamente attendibile.

Proprietà XmlResolver

Funzione

Note

La classe XmlResolver utilizzata da XmlDocument è la stessa utilizzata da XmlReader.

XmlDocument utilizza l'XmlResolver assegnato a XmlReader.

Non è possibile impostare la proprietà XmlDocument.Resolver, indipendentemente dal livello di attendibilità di XmlDocument, poiché ottiene un XmlResolver da XmlReader. Non è possibile eseguire l'override delle impostazioni XmlResolver di XmlReader impostando la proprietà XmlResolver di XmlDocument.

XmlReader può essere l'XmlTextReader, XmlValidatingReader o un lettore personalizzato. Se il lettore utilizzato supporta la risoluzione di entità, le entità esterne vengono risolte. I riferimenti alle entità non vengono risolti se il lettore passato non li supporta.

XmlDocument semi-trusted

Nella tabella seguente viene illustrato il funzionamento della proprietà XmlDocument.XmlResolver quando l'oggetto è semi-trusted. Il contenuto della tabella si applica ai metodi XmlDocument.Load quando l'input di Load è TextReader, String, Stream o URI. Il contenuto della tabella non si applica al metodo Load se XmlDocument viene caricato da un oggetto XmlReader.

Proprietà XmlResolver

Funzione

Note

Nello scenario semi-trusted è possibile impostare la proprietà XmlResolver solo su null.

Verrà creata un'istanza di un XmlUrlResolver con credenziali null e verrà utilizzata dal documento XmlDocument nella risoluzione dei nomi file, nell'individuazione delle DTD esterne, entità e schemi, e le credenziali null utilizzate nella modifica dei nodi.

Il comportamento è identico a quello che si verifica quando la proprietà XmlResolver non viene impostata, bensì lasciata nello stato predefinito.

XmlDocument consente di utilizzare autorizzazioni anonime per tutte le azioni.

La proprietà è impostata su null (Nothing in Microsoft Visual Basic .NET).

Non è supportata alcuna funzionalità che richiede una risorsa esterna, ad esempio l'individuazione di uno schema esterno o di una DTD. Le entità esterne non verranno risolte e non saranno supportate le funzionalità di modifica, quali l'inserimento di nodi di entità che richiedono la risoluzione.

Quando la proprietà è null, il comportamento è identico, indipendentemente dal fatto che XmlDocument sia completamente attendibile o semi-trusted.

La proprietà non viene impostata, ma rimane nello stato predefinito.

Verrà creata un'istanza di un XmlUrlResolver con credenziali null e verrà utilizzata dal documento XmlDocument nella risoluzione dei nomi file, nell'individuazione delle DTD esterne, entità e schemi, e le credenziali null utilizzate nella modifica dei nodi.

XmlDocument consente di utilizzare autorizzazioni anonime per tutte le azioni.

Il contenuto della tabella si applica al metodo XmlDocument.Load quando l'input di Load è XmlReader e XmlDocument è semi-trusted.

Proprietà XmlResolver

Funzione

Note

La classe XmlResolver utilizzata dall'oggetto XmlDocument è la stessa utilizzata dall'oggetto XmlReader.

XmlDocument utilizza l'XmlResolver assegnato a XmlReader.

Non è possibile impostare la proprietà XmlDocument.Resolver, indipendentemente dal livello di attendibilità di XmlDocument, poiché ottiene un XmlResolver da XmlReader. Non è possibile eseguire l'override delle impostazioni XmlResolver di XmlReader impostando la proprietà XmlResolver di XmlDocument.

XmlReader può essere XmlTextReader, un tipo XmlReader di convalida o un lettore personalizzato. Se il lettore utilizzato supporta la risoluzione di entità, le entità esterne vengono risolte. I riferimenti alle entità non vengono risolti se il lettore passato non li supporta.

Impostando XmlResolver in modo che contenga le credenziali corrette sarà possibile accedere alle risorse esterne.

NotaNota

Non vi è modo di recuperare la proprietà XmlResolver.In questo modo è possibile impedire all'utente di riutilizzare un XmlResolver sul quale sono state impostate le credenziali.Inoltre, se viene utilizzato XmlTextReader o un tipo XmlReader di convalida per caricare XmlDocument e quest'ultimo ha un sistema di risoluzione impostato, i sistemi di risoluzione di questi lettori non vengono memorizzati nella cache da XmlDocument dopo la fase Load, in quanto anche tale operazione presenta un rischio per la sicurezza.

Per ulteriori informazioni, vedere Risoluzione delle risorse mediante XmlResolver.

Vedere anche

Concetti

Modello DOM (Document Object Model) XML