Comparar XmlReader con el lector SAX
Como la API simple para el lector XML (SAX), XmlReader es un cursor de solo avance y de solo 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. |
Varios flujos de entrada |
El modelo de extracción permite al cliente reunir varios flujos 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 solo 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