Hola,
Por necesidades de un proyecto, �ltimamente he estado investigando una
familia de parseadores XML que emplean una novedosa aproximaci�n
denominada pull-parsing XML [1] que parece una buena alternativa a DOM y
SAX.
Por si hay alguien trabajando en algo parecido, describo r�pidamente el
concepto e incluyo algunas referencias.
Como es sabido, en el modelo push-parsing, p.ej. SAX2 API, el control
del flujo se cede al parseador, que es quien invoca el c�digo de la
aplicaci�n (m�todos de clases que implementan la SAX Handler API). Esto
da lugar a una programaci�n dirigida por eventos, muy tediosa y dif�cil
de mantener, especialmente cuando las estructuras de los documentos XML
son medianamente complejas. La aplicaci�n recibe eventos de parseo
correspondientes a cada elemento del XML, con lo que debe mantener la
informaci�n de estado necesaria para generar los objetos
correspondientes.
Con pull-parsing el procesamiento sigue bas�ndose en eventos, es decir,
conserva las ventajas de SAX frente al procesamiento en memoria de DOM
(rendimiento, uso de memoria, streaming). Sin embargo, las aplicaciones
resultantes son mucho m�s sencillas, gracias a que el control del flujo
lo realiza en todo momento la aplicaci�n. En este caso, el pull parser
funciona como un iterador de los elementos XML y es la aplicaci�n la que
solicita los eventos ("pull the event"), estando la informaci�n de
estado impl�cita en el propio c�digo de la aplicaci�n (en modo
procedural).
El gran inconveniente de este tipo de parseadores era la falta de
estandarizaci�n de su interfaz, es decir, las aplicaciones eran
dependientes de un parseador concreto. Sin embargo, se est�n dando pasos
para resolver este problema. XMLPull API [2] es una iniciativa de
estandarizaci�n impulsada por los autores de los dos principales pull
parsers: XMPP [3] y kXML [4]. Adem�s, el JCP est� desarrollando una
especificaci�n (JSR 173) de Streaming API for XML (StAX) [5].
[1]
http://www.javaworld.com/javaworld/jw-03-2002/jw-0329-xmljava2-p2.html
[2] http://www.xmlpull.org/
[3] http://www.extreme.indiana.edu/xgws/xsoap/xpp/
[4]
http://kobjects.dyndns.org/kobjects/auto?self=%23c0a80001000000f5ad6a6fb3
[5] http://jcp.org/en/jsr/detail?id=173
Un saludo
--
Rafael Luque, <[EMAIL PROTECTED]>
---------------------------------------------------------------------
Para eliminar la suscripci�n, mail a: [EMAIL PROTECTED]
Para comandos adicionales, mail a: [EMAIL PROTECTED]