XmlReaderSettings Classe

Definição

Especifica um conjunto de recursos para dar suporte ao 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 a seguir cria um XmlReader que usa uma 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)

Comentários

Use 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 seções de comentários nas 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 sinalizadores são definidos, XmlResolver do objeto de XmlReaderSettings é usado para resolver os locais de esquema encontrados no documento de instância em XmlReader. Se o XmlResolver objeto estiver null, os locais de esquema não serão resolvidos mesmo se os sinalizadores ProcessInlineSchema e ProcessSchemaLocation de validação estiverem 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 de fontes confiáveis.

  • Mensagens de erro de validação podem expor informações confidenciais do modelo de conteúdo. As mensagens de aviso e erro de validação são tratadas com o uso do delegado ValidationEventHandler ou são expostas como XmlSchemaValidationException se nenhum manipulador de eventos for fornecido ao objeto XmlReaderSettings (os avisos de validação não fazem com que um XmlSchemaValidationException seja gerado). 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 propriedade SourceUri de um XmlSchemaValidationException retorna o caminho do URI para o arquivo de esquema que causou a exceção. A propriedade SourceUri não deve ser exposta em cenários não confiáveis.

  • É recomendável desabilitar o ProcessIdentityConstraints sinalizador (habilitado por padrão) ao validar documentos XML grandes e não confiáveis em cenários de alta disponibilidade em relação a um esquema com restrições de identidade em grande parte do documento.

  • XmlReaderSettings os 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 de DTD está desabilitado 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 que podem XmlReader ser acessados.

  • Não aceite componentes de suporte, como NameTable, XmlNamespaceManagere XmlResolver objetos, 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

Nome Description
XmlReaderSettings()

Inicializa uma nova instância da classe XmlReaderSettings.

XmlReaderSettings(XmlResolver)
Obsoleto.

Inicializa uma nova instância da classe XmlReaderSettings.

Propriedades

Nome Description
Async

Obtém ou define se métodos assíncronos podem ser usados XmlReader em uma instância específica XmlReader .

CheckCharacters

Obtém ou define um valor que indica se deve fazer a verificação de caracteres.

CloseInput

Obtém ou define um valor que indica se o fluxo subjacente ou TextReader deve ser fechado quando o leitor é fechado.

ConformanceLevel

Obtém ou define o nível de conformidade com o qual o XmlReader will comply.

DtdProcessing

Obtém ou define um valor que determina o processamento de DTDs.

IgnoreComments

Obtém ou define um valor que indica se os comentários devem ser ignorados.

IgnoreProcessingInstructions

Obtém ou define um valor que indica se as instruções de processamento devem ser ignoradas.

IgnoreWhitespace

Obtém ou define um valor que indica se o espaço em branco insignificante deve ser ignorado.

LineNumberOffset

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

LinePositionOffset

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

MaxCharactersFromEntities

Obtém ou define um valor que indica o número máximo permitido de caracteres em um documento resultante da expansão de entidades.

MaxCharactersInDocument

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

NameTable

Obtém ou define o XmlNameTable usado para comparações de cadeia de caracteres atomizada.

ProhibitDtd
Obsoleto.
Obsoleto.

Obtém ou define um valor que indica se o processamento de DTD (definição de tipo de documento) deve ser proibido. Esta propriedade é obsoleta. Use DtdProcessing em seu lugar.

Schemas

Obtém ou define o XmlSchemaSet que usar ao executar a validação de esquema.

ValidationFlags

Obtém ou define um valor que indica as configurações de validação de esquema. Essa configuração se aplica a XmlReader objetos que validam esquemas (ValidationType propriedade definida como ValidationType.Schema).

ValidationType

Obtém ou define um valor que indica se a XmlReader atribuição de tipo ou validação será executada ao ler.

XmlResolver

Define o XmlResolver usado para acessar documentos externos.

Métodos

Nome Description
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 a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
Reset()

Redefine os membros da classe de configurações para seus valores padrão.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Eventos

Nome Description
ValidationEventHandler

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

Aplica-se a

Confira também