Share via


Nuevas características de la clase XmlReader

Actualización: November 2007

La versión 2.0 de Microsoft .NET Framework incluye numerosos cambios de diseño y funcionalidad en la clase XmlReader.

Creación de XmlReader

En esta versión, el método Create es el mecanismo preferido para obtener instancias de XmlReader. El método Create utiliza la clase XmlReaderSettings para especificar qué características debería permitir la instancia de XmlReader.

Para obtener más información, vea Creación de sistemas de lectura XML.

Validación de datos

Los objetos XmlReader creados por el método Create pueden exigir la validación utilizando una definición de tipo de documento (DTD) o un esquema del lenguaje de definición de esquemas (XSD). La propiedad XmlReaderSettings.ValidationType determina si la instancia de XmlReader exige la validación. La propiedad XmlReaderSettings.ValidationFlags configura valores de validación opcionales. La clase XmlSchemaSet se utiliza para almacenar esquemas XML en caché.

Nota:

Las clases XmlValidatingReader y XmlSchemaCollection están obsoletas en la versión 2.0 de .NET Framework.

Para obtener más información, vea Validación de datos XML con XmlReader.

Cumplimiento en datos

Los objetos XmlReader que crea el método Create muestran un mayor cumplimiento, de manera predeterminada, que la implementación de XmlTextReader. Los objetos XmlReader que crea el método Create admiten las siguientes características de manera predeterminada:

  • normalizan los caracteres de nueva línea.

  • expanden entidades.

  • agregan atributos predeterminados.

Las propiedades XmlReaderSettings.CheckCharacters y XmlReaderSettings.ConformanceLevel le permiten especificar el tipo de comprobaciones del cumplimiento que desea habilitar en el objeto XmlReader creado. Para obtener más información, vea Comprobación del cumplimiento en datos con XmlReader.

Compatibilidad de tipos

Proporciona compatibilidad para recuperar información del esquema del lenguaje de definición de esquemas XML (XSD) y permite que quien realiza la llamada solicite valores como valores de Common Language Runtime (CLR) de tipo simple.

Los métodos ReadContentAs y ReadElementContentAs pueden leer contenido como tipos del sistema en lugar de cadenas. Estos nuevos métodos permiten a los usuarios obtener valores en la representación que son más apropiados para el trabajo de codificación sin tener que realizar manualmente conversiones de valores y análisis.

Para obtener más información, vea Lectura de datos de tipo.

Nuevos métodos auxiliares

La clase XmlReader incluye nuevos métodos que deberían facilitar el análisis de datos XML:

  • ReadSubtree - Devuelve un nuevo XmlReader que lee el elemento actual y todos sus descendientes.

  • ReadToDescendant - Hace avanzar el sistema de lectura hasta el siguiente elemento secundario que coincide con el nombre especificado.

  • ReadToNextSibling - Hace avanzar el sistema de lectura hasta el siguiente elemento relacionado que coincide con el nombre especificado.

  • ReadToFollowing - Hace avanzar el sistema de lectura hasta el siguiente elemento que coincide con el nombre especificado.

  • ReadValueChunk - Lee grandes secuencias de texto incrustadas en un documento XML de manera secuencial.

  • ReadContentAsBase64 y ReadElementContentAsBase64 - Lee grandes secuencias de datos binarios incrustados en un documento XML de manera secuencial y descodifica el contenido en Base64.

  • ReadContentAsBinHex y ReadElementContentAsBinHex - Lee grandes secuencias de datos binarios incrustados en un documento XML de manera secuencial y descodifica el contenido en BinHex.

Características de seguridad

Puede crear un objeto XmlReader que prohíba el procesamiento de definiciones de tipo de documento (DTD). Puede ser útil deshabilitar el procesamiento DTD para prevenir determinados ataques de denegación de servicio. Una vez deshabilitado el procesamiento de DTD, el objeto XmlReader inicia una XmlException cuando se encuentra contenido DTD. De manera predeterminada, el procesamiento DTD está deshabilitado. Para habilitarlo, establezca la propiedad XmlReaderSettings.ProhibitDtd en false antes de crear XmlReader.

Nota:

La propiedad ProhibitDtd también está disponible en la clase XmlTextReader.

Control de entidades

Los objetos XmlReader que crea el método Create expanden automáticamente todas las entidades. Se inicia una excepción si no se pueden resolver las entidades que se encuentran.

Vea también

Conceptos

Leer fragmentos de XML con XmlReader