Share via


Leer datos XML con XmlTextReader

La clase XmlTextReader es una implementación de XmlReader y proporciona un analizador sobre texto XML. Aplica las reglas para que XML tenga un formato adecuado. Es un analizador que valida o que no valida, puesto que no utiliza la definición de tipo de documento (DTD) o información de esquema. Puede leer texto en bloques o caracteres de una secuencia.

NotaNota

En .NET Framework versión 2.0, la práctica recomendada es crear instancias XmlReader mediante la clase XmlReaderSettings y el método Create.Esto le permite sacar el máximo provecho de todas las nuevas características introducidas en .NET Framework 2.0.Para obtener más información, vea Creación de sistemas de lectura XML.

Información general

La clase XmlTextReader ofrece la funcionalidad siguiente:

  • Aplica las reglas para que XML tenga un formato correcto.

  • Comprueba que el formato de la DTD sea correcto. No obstante, no utiliza la DTP para validación o para añadir atributos predeterminados. La DTD se utiliza para expandir la entidad si la propiedad EntityHandling se establece en ExpandEntities, o si el método ResolveEntity es llamado en un nodo EntityReference.

  • Devuelve referencias de entidad no expandida como nodos EntityReference cuando la propiedad EntityHandling se establece en ExpandCharEntities (esta es la configuración por defecto). Si la referencia de entidad no está definida en una DTD, el sistema de lectura no producirá ningún error a no ser que el método ResolveEntity sea llamado en el nodo.

  • Proporciona una opción para desactivar la normalización XML de nuevos valores de líneas y atributos. La normalización se desactiva de forma predeterminada.

  • La validación no se realiza con respecto a DTD o esquemas.

  • Proporciona un analizador de XML eficaz, ya que la clase XmlTextReader no origina la sobrecarga de trabajo que implica la comprobación de la validación.

XmlTextReader puede leer datos de diferentes procedencias, como un objeto de secuencia, TextReader y una dirección URL que identifica la ubicación de un archivo local o de un sitio web.

XmlTextReader utiliza XmlResolver para localizar recursos externos, tales como las DTD, de forma que pueda comprobarlos para ver si su formato es correcto. Para obtener más información sobre el método XmlResolver, vea Resolución de recursos con XmlResolver.

La declaración de codificación, <?xml version="1.0" encoding="ISO-8859-5"?>, contiene un atributo de codificación que establece la codificación para el documento. XmlTextReader incluye una propiedad Encoding que devuelve la codificación de caracteres encontrada en el atributo de codificación de la declaración XML. Si no se encuentra ningún atributo de codificación, la forma predeterminada para el documento se establece en UTF-8 o UTF-16 basándose en los dos primeros bytes de una secuencia.

Si se lee un recurso externo, como una DTD empleada para expandir una referencia a una entidad o un archivo de esquema, el valor de la codificación se iguala al encontrado en la referencia externa. Si no se encuentra codificación en la referencia externa, el valor predeterminado se establece en UTF-8 o UTF-16. XmlTextReader admite muchas codificaciones, ya que usa la clase Encoding. Por lo tanto, todas las codificaciones admitidas por esa clase también lo son por la clase XmlTextReader. Las únicas codificaciones no admitidas son las que asignan la secuencia <?xml a valores de byte diferentes a UTF-8, como UTF-7 y EBCDIC.

Vea también

Conceptos

Leer fragmentos de XML con XmlReader

Otros recursos

Uso de la clase XmlReader