Compartilhar via


Carregando dados de um leitor

Se um documento XML é carregado usando o método Load e um parâmetro de XmlReader, existem diferenças no comportamento que ocorre quando comparado ao comportamento de dados de carregamento de outro formata. Se o leitor está no estado inicial, Load consome todo o conteúdo do leitor e compila o modelo de objeto (DOM) de documento de todos os dados no leitor.

Se o leitor já está localizado em um nó em algum lugar no documento, e o leitor é então passado para o método de Load , tentativas de Load de ler o nó atual e todos os seus irmãos, até a marca de fim que fecha a profundidade atual na memória. O sucesso de Load tentado depende do nó que o leitor está na carga quando é tentada, porque Load verifica que XML do leitor seja bem formado. Se XML bem formado, não é Load gerencie uma exceção. Por exemplo, o seguinte conjunto de nós contém dois elementos de nível raiz, não é XML bem formado, e gera de Load uma exceção.

  • Nó de comentário, seguido por um nó de elemento, seguido por um nó de elemento, seguido por um nó de EndElement.

O seguinte conjunto de nós cria os DOM incompletos, porque não há nenhum elemento de nível raiz.

  • Nó de comentário seguido por um nó de ProcessingInstruction seguido por um nó de comentário seguido por um nó de EndElement.

Isso não gerencie uma exceção, e os dados estão carregados. Você pode adicionar um elemento raiz na parte superior desses nós e criar o XML bem formado que pode ser salvo sem erro.

Se o leitor é posicionado em um nó folha que não é válido para o nível raiz de um documento (por exemplo, um espaço em branco ou um nó de atributo), o leitor continua a ler até que está localizado em um nó que pode ser usado para a raiz. O documento começa a carregar no momento.

Por padrão, Load não verifica se o XML é válida usando o Document type definition (DTD) ou validação de esquema. Verifica somente se está XML bem formado. Para que a validação ocorre, você precisa criar XmlReader usando a classe de XmlReaderSettings . A classe XmlReader pode impor a validação usando um esquema da linguagem XSD ou DTD. A propriedade de ValidationType na classe de XmlReaderSettings determina se a instância de XmlReader aplica a validação. Para obter mais informações sobre a validação de dados XML, consulte a seção comentários da página de referência XmlReader.

Confira também