Compartir a través de


Comparar XmlReader con el sistema de lectura SAX

Al igual que el sistema de lectura 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 sistema de lectura según su voluntad. Las ventajas de este modelo de extracción se hallan en las áreas siguientes:

Ventaja Descripción
Administración de estados 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.
Múltiples secuencias de entrada El modelo de extracción permite al cliente reunir múltiples 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 aquéllos 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. Para obtener más información sobre cómo omitir contenido, vea Omitir contenido con XmlReader.

Vea también

Leer XML con XmlReader | Ubicación del nodo actual en XmlReader | Configuración de propiedades en XmlReader | Comparación de objetos mediante XmlNameTable con XmlReader | Leer atributos con XmlReader | Leer el contenido de elementos y atributos | Omitir contenido con XmlReader | Lectura y expansión de EntityReference | Leer datos XML con XmlTextReader | Leer árboles de nodos con XmlNodeReader | Validar XML con XmlValidatingReader | Creación de sistemas de lectura XML personalizados | XmlReader (Clase) | XmlReader (Miembros) | XmlNodeReader (Clase) | XmlNodeReader (Miembros) | XmlTextReader (Clase) | XmlTextReader (Miembros) | XmlValidatingReader (Clase) | XmlValidatingReader (Miembros)