XmlReaderSettings Classe

Definição

Especifica um conjunto de funcionalidades a suportar no XmlReader objeto criado pelo Create método.

public ref class XmlReaderSettings sealed
public sealed class XmlReaderSettings
type XmlReaderSettings = class
Public NotInheritable Class XmlReaderSettings
Herança
XmlReaderSettings

Exemplos

O exemplo seguinte cria um XmlReader que usa um XmlUrlResolver com as credenciais necessárias.

// Create an XmlUrlResolver with the credentials necessary to access the Web server.
var resolver = new XmlUrlResolver();
var myCred = new NetworkCredential(UserName, SecurelyStoredPassword, Domain);
resolver.Credentials = myCred;

var settings = new XmlReaderSettings();
settings.XmlResolver = resolver;

// Create the reader.
XmlReader reader = XmlReader.Create("http://serverName/data/books.xml", settings);
' Create an XmlUrlResolver with the credentials necessary to access the Web server.
Dim resolver As New XmlUrlResolver()
Dim myCred As System.Net.NetworkCredential
myCred = New System.Net.NetworkCredential(UserName, SecurelyStoredPassword, Domain)
resolver.Credentials = myCred

Dim settings As New XmlReaderSettings()
settings.XmlResolver = resolver

' Create the reader.
Dim reader As XmlReader = XmlReader.Create("http://serverName/data/books.xml", settings)

Observações

Usa o método Create para obter instâncias XmlReader. Esse método usa a XmlReaderSettings classe para especificar quais recursos implementar no XmlReader objeto que ele cria.

Consulte as secções de comentários das páginas de referência XmlReader e Create para obter informações sobre quais configurações usar para verificações de conformidade, validação e outros cenários comuns. Consulte o XmlReaderSettings() construtor para obter uma lista de configurações padrão.

Considerações de segurança

Considere o seguinte ao usar a XmlReaderSettings classe.

  • Os sinalizadores de validação ProcessInlineSchema e ProcessSchemaLocation de um objeto XmlReaderSettings, não são definidos por padrão. Quando esses flags estão ativados, o XmlResolver do objeto XmlReaderSettings é utilizado para resolver localizações de esquema encontradas no documento de instância no XmlReader. Se o XmlResolver objeto for null, os locais do esquema não serão resolvidos, mesmo que os sinalizadores de validação ProcessInlineSchema e ProcessSchemaLocation estejam definidos.

  • Os esquemas adicionados durante a validação adicionam novos tipos e podem alterar o resultado da validação do documento que está sendo validado. Como resultado, os esquemas externos só devem ser resolvidos a partir de fontes confiáveis.

  • As mensagens de erro de validação podem expor informações confidenciais do modelo de conteúdo. As mensagens de erro e aviso de validação são tratadas usando o delegado ValidationEventHandler ou são expostas como um XmlSchemaValidationException se nenhum manipulador de eventos for fornecido ao objeto XmlReaderSettings (avisos de validação não fazem com que um XmlSchemaValidationException seja lançado). Essas informações do modelo de conteúdo não devem ser expostas em cenários não confiáveis. As mensagens de aviso de validação são suprimidas por padrão e podem ser relatadas definindo o ReportValidationWarnings sinalizador.

  • A SourceUri propriedade de um XmlSchemaValidationException devolve o caminho URI do ficheiro de esquema que causou a exceção. A propriedade SourceUri não deve ser exposta em cenários não confiáveis.

  • A desativação da flag ProcessIdentityConstraints (habilitado por padrão) é recomendada ao validar documentos XML grandes e não confiáveis em cenários de alta disponibilidade contra um esquema com restrições de identidade sobre uma grande parte do documento.

  • XmlReaderSettings objetos podem conter informações confidenciais, como credenciais de usuário. Você deve ter cuidado ao armazenar objetos em cache XmlReaderSettings ou ao passar o XmlReaderSettings objeto de um componente para outro.

  • O processamento DTD está desativado por padrão. Se você habilitar o processamento de DTD, precisará estar ciente da inclusão de DTDs de fontes não confiáveis e possíveis ataques de negação de serviço. Use ThrowingResolver para restringir os recursos a que XmlReader podem aceder.

  • Não aceite componentes de suporte, como objetos NameTable, XmlNamespaceManagere XmlResolver, de uma fonte não confiável.

  • O uso de memória de um aplicativo que usa XmlReader pode ter uma correlação com o tamanho do documento XML analisado. Uma forma de ataque de negação de serviço é quando documentos XML excessivamente grandes são enviados para serem analisados. Você pode limitar o tamanho do documento que pode ser analisado definindo a MaxCharactersInDocument propriedade e, em seguida, limitar o número de caracteres resultantes da expansão de entidades definindo a MaxCharactersFromEntities propriedade.

Construtores

Name Descrição
XmlReaderSettings()

Inicializa uma nova instância da XmlReaderSettings classe.

XmlReaderSettings(XmlResolver)
Obsoleto.

Inicializa uma nova instância da XmlReaderSettings classe.

Propriedades

Name Descrição
Async

Obtém ou define se métodos assíncronos XmlReader podem ser usados numa instância particular XmlReader .

CheckCharacters

Recebe ou define um valor que indica se deve fazer verificação de caracteres.

CloseInput

Recebe ou define um valor que indica se o fluxo subjacente ou TextReader o leitor deve estar fechado quando o leitor está fechado.

ConformanceLevel

Obtém ou definem o nível de conformidade com o qual a XmlReader vontade de cumprir.

DtdProcessing

Recebe ou define um valor que determina o processamento das DTDs.

IgnoreComments

Recebe ou define um valor que indica se deve ignorar comentários.

IgnoreProcessingInstructions

Recebe ou define um valor que indica se deve ignorar instruções de processamento.

IgnoreWhitespace

Recebe ou define um valor que indica se deve ignorar espaços em branco insignificantes.

LineNumberOffset

Obtém ou define o deslocamento do número de linha do XmlReader objeto.

LinePositionOffset

Obtém ou define o deslocamento da posição da linha do XmlReader objeto.

MaxCharactersFromEntities

Recebe ou define um valor que indica o número máximo permitido de caracteres num documento resultantes da expansão das entidades.

MaxCharactersInDocument

Recebe ou define um valor que indica o número máximo permitido de caracteres num documento XML. Um valor zero (0) significa que não há limites no tamanho do documento XML. Um valor não nulo especifica o tamanho máximo, em caracteres.

NameTable

Obtém ou definem os XmlNameTable usados para comparações de cordas atomizadas.

ProhibitDtd
Obsoleto.
Obsoleto.

Recebe ou define um valor que indica se deve proibir o processamento de definição de tipo de documento (DTD). Esta propriedade está obsoleta. Utilize DtdProcessing em substituição.

Schemas

Obtém ou define o XmlSchemaSet para usar ao realizar a validação de esquemas.

ValidationFlags

Recebe ou define um valor que indica as definições de validação do esquema. Esta definição aplica-se a XmlReader objetos que validam esquemas (ValidationType propriedade definida para ValidationType.Schema).

ValidationType

Recebe ou define um valor que indica se irá XmlReader realizar validação ou atribuição de tipo durante a leitura.

XmlResolver

Define o XmlResolver usado para aceder a documentos externos.

Métodos

Name Descrição
Clone()

Cria uma cópia da XmlReaderSettings instância.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
Reset()

Reinicia os membros da classe de definições para os seus valores padrão.

ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Eventos

Name Descrição
ValidationEventHandler

Ocorre quando o leitor encontra erros de validação.

Aplica-se a

Ver também