On Sun, 27 Jun 2010 14:56:21 -0400, Yao G. <nospam...@gmail.com> wrote:

I did a simple implementation of a pull parser, using this API as reference: http://xmlpull.org/

But I used a iterator similar to the one used by Steve (from dcollections) to parse the doc. It turns out that Tango did something similar first (using iterator to parse the document), and seeing the debacle caused by the Date module, I think it would be a bad idea to release it.

Did you look at Tango's code in question, or look at their documentation? If not, then you are fine.

I think any implementation is going to have to at least try to use ranges or show why they are not a good idea for xml, since Andrei is set on using ranges for everything.

BTW, I've not used std.xml or tango's xml, but I agree that an xml library is a very important part of today's standard libraries. Having xml in the standard allows for so much usage of it in many other places (serialization comes to mind immediately). If std.xml is bad (which I've heard from several independent people), then throw it out and make something new.

I myself have tried to think of how xml can be done with ranges, but I believe one of the key elements is it has to parse xml without loading the entire document to be efficient enough for some applications. A DOM style parser which presents a range interface is probably fine, but a lazy interface would be the best. Since XML is a tree style, you need a range which allows moving down the tree. You almost need a stacking range which can move down the tree and also to the next sibling element. Ideally, the library should do as much as possible without allocating anything but buffer space to read data.

-Steve

Reply via email to