Thanks for the offer, SS.
Actually one of the key features of JEQL is that it tries to avoid requiring data to be in-memory where it can. In many situations tables can be read from inputs, processed, and written out in a streaming fashion, without being limited by the size of main memory. So I'm writing the XMLWriter to operate on the standard JEQL table data structure, which abstracts away the actual location of the information in the table.
I've basically got the XMLWriter done - it wasn't too hard to do, for the straightforward use case of simply representing a table and rows in XML (of course, it allows the tagnames to be customized).
I do like that STaX API - I used it to develop the KMLReader for JEQL. Thanks for alerting me to that! It's much easier to think in terms of pull parsing than push parsing, I find. I'll probably play around with using it to build an XMLReader as well (without trying to get too fancy - probably something like the idea used in the JUMP GML Reader, of specifying elements which contain content to be parsed)
M