XmlTextReader (Clase) (System.Xml)

Cambiar vista:
Sin script
Biblioteca de clases de .NET Framework
XmlTextReader (Clase)

Actualización: noviembre 2007

Representa un lector que proporciona acceso rápido a datos XML, sin almacenamiento en caché y con desplazamiento sólo hacia delante.

Espacio de nombres:  System.Xml
Ensamblado:  System.Xml (en System.Xml.dll)
Sintaxis

Visual Basic (Declaración)
<PermissionSetAttribute(SecurityAction.InheritanceDemand, Name := "FullTrust")> _
Public Class XmlTextReader _
	Inherits XmlReader _
	Implements IXmlLineInfo, IXmlNamespaceResolver
Visual Basic (Uso)
Dim instance As XmlTextReader
C#
[PermissionSetAttribute(SecurityAction.InheritanceDemand, Name = "FullTrust")]
public class XmlTextReader : XmlReader, 
	IXmlLineInfo, IXmlNamespaceResolver
Visual C++
[PermissionSetAttribute(SecurityAction::InheritanceDemand, Name = L"FullTrust")]
public ref class XmlTextReader : public XmlReader, 
	IXmlLineInfo, IXmlNamespaceResolver
J#
/** @attribute PermissionSetAttribute(SecurityAction.InheritanceDemand, Name = "FullTrust") */
public class XmlTextReader extends XmlReader implements IXmlLineInfo, 
	IXmlNamespaceResolver
JScript
public class XmlTextReader extends XmlReader implements IXmlLineInfo, IXmlNamespaceResolver
Comentarios

7hh47ty4.alert_note(es-es,VS.90).gif Nota:

En la versión .NET Framework versión 2.0, se recomienda crear instancias de XmlReader utilizando el método XmlReader.Create. De esta forma, puede aprovechar al máximo las nuevas funciones presentadas en esta versión. Para obtener más información, vea Creación de sistemas de lectura XML.

XmlTextReader proporciona acceso de sólo lectura y con desplazamiento sólo hacia delante a una secuencia de datos XML. El nodo actual hace referencia al nodo en el que está situado el lector. Para avanzar el lector, utilice cualquiera de los métodos de lectura y las propiedades reflejan el valor del nodo actual.

Esta clase implementa XmlReader y satisface las recomendaciones relativas a espacios de nombres en XML y Extensible Markup Language (XML) 1.0 del Consorcio W3C. XmlTextReader proporciona la siguiente funcionalidad:

  • Impone las reglas de formato XML correcto.

  • XmlTextReader no proporciona validación de datos.

  • Comprueba que los nodos DocumentType tienen el formato correcto. XmlTextReader comprueba si DTD tiene el formato correcto, pero no valida utilizando DTD.

  • Para los nodos en los que la propiedad NodeType es XmlNodeType.EntityReference, se devuelve un solo nodo EntityReference vacío (es decir, la propiedad Value es String.Empty).

7hh47ty4.alert_note(es-es,VS.90).gif Nota:

Las declaraciones reales de entidades en DTD se denominan nodos Entity. Al hacer referencia a estos nodos en los datos, se denominan nodos EntityReference.

  • No expande los atributos predeterminados.

Como XmlTextReader no realiza las comprobaciones adicionales necesarias para la validación de datos, proporciona un analizador rápido de formatos correctos.

Para realizar la validación de los datos, utilice un objeto XmlReader de validación. Para obtener más información, vea Validación de datos XML con XmlReader.

Para leer datos XML de un objeto XmlDocument, utilice XmlNodeReader.

XmlTextReader produce una excepción XmlException en los errores de análisis de XML. Tras producirse una excepción, el estado del lector es imprevisible. Por ejemplo, el tipo de nodo notificado puede ser distinto del tipo de nodo real del nodo actual. Utilice la propiedad ReadState para comprobar si un lector está en estado de error.

Para obtener más información sobre las clases XmlReader, vea Leer fragmentos de XML con XmlReader.

Consideraciones de seguridad

Debe tener en cuenta lo siguiente cuando utilice la clase XmlTextReader.

  • Las excepciones iniciadas por XmlTextReader pueden revelar información de ruta de acceso que quizás no desee traspasar a la aplicación. Las aplicaciones deben detectar las excepciones y procesarlas correctamente.

  • El procesamiento de DTD está habilitado de forma predeterminada. Deshabilite el procesamiento de DTD si le preocupan los problemas de Denegación de servicio o si está tratando con orígenes en los que no confía. Establezca la propiedad ProhibitDtd en true para deshabilitar el procesamiento de DTD.

    Si tiene el procesamiento de DTD habilitado, puede utilizar XmlSecureResolver para restringir los recursos a los que XmlTextReader puede tener acceso. También puede diseñar su aplicación para que el procesamiento XML se realice con restricciones de memoria y tiempo. Por ejemplo, puede configurar límites del tiempo de espera en su aplicación ASP.NET

  • Los datos XML pueden incluir referencias a recursos externos como un archivo DTD. De manera predeterminada, los recursos externos se resuelven utilizando un objeto XmlUrlResolver sin credenciales de usuario. Puede protegerse aún más si realiza una de las acciones siguientes:

    • Restrinja los recursos a los que puede tener acceso XmlTextReader estableciendo la propiedad XmlResolver en un objeto XmlSecureResolver.

    • No permita que XmlReader abra ningún recurso externo estableciendo la propiedad XmlResolver en null.

  • Los datos XML pueden contener un gran número de atributos, declaraciones de espacios de nombres, elementos anidados, etc. que requieren mucho tiempo para su procesamiento. Para limitar el tamaño de la entrada que se envía a XmlTextReader, cree una implementación personalizada de IStream y proporciónele el XmlTextReader.

  • El método ReadValueChunk puede utilizarse para tratar secuencias grandes de datos. Este método lee un número reducido de caracteres cada vez en lugar de asignar una única cadena para todo el valor.

  • De forma predeterminada, las entidades generales no se expanden. Las entidades generales se expanden cuando llama al método ResolveEntity.

Notas para los herederos:

Esta clase tiene una petición de herencia. Es necesaria la confianza total para derivar de XmlTextReader. Para obtener más información, vea Peticiones de herencia.

Jerarquía de herencia

System.Object
  System.Xml.XmlReader
    System.Xml.XmlTextReader
Seguridad para subprocesos

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.
Plataformas

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile para Smartphone, Windows Mobile para Pocket PC, Xbox 360

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.
Información de versión

.NET Framework

Compatible con: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Compatible con: 3.5, 2.0, 1.0

XNA Framework

Compatible con: 2.0, 1.0
Vea también

Referencia

Otros recursos