Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A propriedade XmlResolver do XmlDocument é usada pela classe XmlDocument para localizar os recursos que não são embutidos nos dados XML, como definições de tipo de documento (DTDs), entidades e esquemas externos. Esses itens podem ser localizados em uma rede ou em uma unidade local, e são identificáveis por Uniform Resource Identifier (URI). Isso permite que o XmlDocument resolva os nós de EntityReference presentes no documento e valide o documento de acordo com DTDs ou esquema externos.
XmlDocument com confiança total
A propriedade XmlResolver afeta a funcionalidade do método XmlDocument.Load. A tabela abaixo mostra como funciona a propriedade XmlDocument.XmlResolver quando o objeto XmlDocument é totalmente confiável. A tabela a seguir mostra os métodos XmlDocument.Load quando a entrada para a carga é TextReader, String, Stream ou URI. Esta tabela não se aplica ao método Load se o XmlDocument for carregado a partir de um XmlReader.
| Propriedade de XmlResolver | Função | Observações |
|---|---|---|
| A propriedade é definida como classe XmlResolver criada previamente e com as propriedades já definidas nela pelo usuário. | O XmlDocument usa o XmlResolver fornecido para resolver nomes de arquivo e referências a recursos externos, como DTDs, entidades e esquemas. O XmlResolver também é usado para resolver recursos externos necessários ao adicionar ou editar nós no XmlDocument. |
O XmlResolver dado ao XmlDocument é o resolvedor usado sempre que recursos externos precisam ser localizados e resolvidos. |
| A propriedade é definida como nula (Nothing no Microsoft Visual Basic .NET). | Os recursos que exigem um recurso externo não são suportados, como localizar um esquema externo, ou o DTD. Nem as entidades externas serão resolvidas, e a execução de funções de edição, como inserir nós de entidade que exigem resolução, não são suportadas. | O XmlDocument carrega arquivos como anônimos e não tenta resolver qualquer outro recurso. |
| A propriedade não está definida e foi deixada em seu estado padrão. | Um XmlUrlResolver com credenciais NULAS será instanciado e usado pelo XmlDocument ao resolver nomes de arquivos e localizar DTDs, entidades e esquemas externos, e as credenciais nulas serão usadas ao editar nós. |
A tabela a seguir mostra o método XmlDocument.Load quando a entrada à Carga é um XmlReader e o XmlDocument é totalmente confiável.
| Propriedade de XmlResolver | Função | Observações |
|---|---|---|
| A classe XmlResolver usada pelo XmlDocument é a mesma que está sendo usada pelo XmlReader. | O XmlDocument usa o XmlResolver atribuído ao XmlReader. A propriedade XmlDocument.Resolver não pode ser definida, independentemente do nível de confiança do XmlDocument, porque está obtendo um XmlResolver do XmlReader. Você não pode tentar substituir as configurações do XmlResolver de XmlReaders definindo a propriedade XmlResolver do XmlDocument. |
O XmlReader pode ser o XmlTextReader, o XmlValidatingReader ou um leitor personalizado. Se o leitor usado oferece suporte a resolução de entidades, as entidades externas são resolvidas. Se o leitor fornecido não oferece suporte a referências a entidades, então as referências a entidades não são resolvidas. |
XmlDocument de confiança parcial
A tabela a seguir mostra como funciona a propriedade XmlDocument.XmlResolver quando o objeto é de confiança parcial. Esta tabela se aplica aos métodos XmlDocument.Load quando a entrada para o Load é um TextReader, uma String, um Stream ou um URI. Esta tabela não se aplica ao método Load se o XmlDocument é carregado de um XmlReader.
| Propriedade de XmlResolver | Função | Observações |
|---|---|---|
| No cenário de confiança parcial, a propriedade XmlResolver só pode ser definida como nula. | Um XmlUrlResolver com credenciais nulas será instanciado e usado pelo XmlDocument ao resolver nomes de arquivo e localizar DTDs, entidades e esquemas externos, e as credenciais nulas serão usadas ao editar nós. | Esse comportamento é idêntico ao apresentado quando a propriedade XmlResolver não está definida, mas deixada no estado padrão. O XmlDocument usa permissões anônimas para todas as ações. |
| A propriedade é definida como nula (Nothing no Microsoft Visual Basic .NET). | Nenhum recurso que requer um recurso externo é suportado, como localizar um esquema externo ou um DTD. Nem as entidades externas serão resolvidas, e realizar funções de edição, como a inserção de nós das entidades que exigem resolução, não é compatível. | Quando a propriedade é nula, o comportamento é o mesmo, não importando se o XmlDocument é total ou parcialmente confiável. |
| A propriedade não está definida e foi deixada em seu estado padrão. | Um XmlUrlResolver com credenciais nulas será instanciado e usado pelo XmlDocument ao resolver nomes de arquivo e localizar DTDs, entidades e esquemas externos, e as credenciais nulas serão usadas ao editar nós. | O XmlDocument usa permissões anônimas para todas as ações. |
Esta tabela se aplica ao método XmlDocument.Load quando a entrada ao Load é um XmlReader e o XmlDocument é semi-confiável.
| Propriedade de XmlResolver | Função | Observações |
|---|---|---|
| A classe XmlResolver usada pelo XmlDocument é a mesma que está sendo usada pelo XmlReader. | O XmlDocument usa o XmlResolver atribuído ao XmlReader. A propriedade XmlDocument.Resolver não pode ser definida, independentemente do nível de confiança do XmlDocument, porque está obtendo um XmlResolver do XmlReader. Não tente substituir as configurações de XmlReaders do XmlResolver definindo a propriedade do XmlResolver do XmlDocument. |
O XmlReader pode ser o XmlTextReader, o XmlReader de validação ou um leitor personalizado. Se o leitor usado oferece suporte a resolução de entidades, as entidades externas são resolvidas. Se o leitor fornecido não oferece suporte a referências a entidades, então as referências a entidades não são resolvidas. |
Defina o XmlResolver para conter as credenciais corretas permite acesso aos recursos externos.
Observação
Não é possível recuperar a propriedade XmlResolver. Isso ajuda a impedir que um usuário reutilize um XmlResolver em que as credenciais foram definidas. Além disso, se um XmlTextReader ou um XmlReader de validação for usado para carregar o XmlDocument e o XmlDocument tiver um resolvedor definido, os resolvedores desses leitores não serão armazenados em cache pelo XmlDocument após a fase de Carga, pois isso também apresenta um risco de segurança.
Para obter mais informações, consulte a seção de Comentários da página de referência XmlResolver.