Share via


Comparar XmlReader con el lector SAX

Actualización: November 2007

Como la API simple para el lector XML (SAX), XmlReader es un cursor de sólo avance y de sólo lectura. Proporciona un sistema de acceso rápido y sin almacenamiento en caché a las secuencias de la entrada. Puede leer una secuencia o un documento. Permite al usuario extraer datos y omitir los registros que no interesen a la aplicación. La diferencia principal entre ambos reside en el hecho de que el modelo SAX es de "inserción": el analizador inserta eventos en la aplicación y le notifica cada vez que se ha leído un nuevo nodo. En cambio, las aplicaciones que usan XmlReader pueden extraer los nodos del lector directamente. Las ventajas de este modelo de extracción se hallan en las áreas siguientes:

Ventaja

Descripción

Administración de estado

El modelo de inserción requiere que los controladores de contenido creen equipos de estado muy complejos. El cliente del modelo de extracción simplifica la administración de estados mediante un perfeccionamiento natural y de menor a mayor complejidad de los procedimientos.

Varias secuencias de entrada

El modelo de extracción permite al cliente reunir varias secuencias de entrada. En el modelo de inserción esto resulta extremadamente complejo.

Estructuración por niveles

El modelo de inserción puede basarse en el modelo de extracción. Lo contrario no es cierto.

Limitación de la copia adicional de cadenas

Normalmente, los datos se leen del búfer del analizador y se pasan al objeto de cadena, que, a continuación, se inserta en el búfer del cliente. El modelo de extracción permite al cliente proporcionar al analizador un búfer donde la cadena se escribe directamente.

Procesamiento selectivo

El modelo de inserción notifica al cliente cada elemento, lo que incluye los atributos, las instrucciones de procesamiento y los espacios en blanco, mientras que el cliente del modelo de extracción puede omitir esos elementos y procesar sólo aquellos que interesan a la aplicación. Esto permite que las aplicaciones sean extremadamente eficientes. Además, las propiedades que afectan a la forma en que se procesa la secuencia XML (por ejemplo, Normalization) se pueden establecer por adelantado.

Vea también

Conceptos

Leer fragmentos de XML con XmlReader

Otros recursos

Uso de la clase XmlReader