On Mon, 28 Jun 2010 09:59:45 -0400, Alix Pexton <[email protected]> wrote:


I've never used anything like SAX myself, though I have used the DOM quite a lot, and spent most of the time wishing it worked a bit more like StAX (even though I hadn't heard of StAX at the time ^^).

DOM is usually built on top of SAX, so start with the lowest common denominator.

What ever is done for D, it should allow programmers to work with XML in a way that is familiar to them and compatible with what others do. Memory should be used conservatively, and reprocessing (parsing the same portion of a document multiple times) should be minimised.

Parsing multiple times should be minimized, but more important than that, allocations should be minimal. Nothing kills a good parsing/input algorithm's performance in D than overuse of the GC. Tango goes as far as having you pass in stack buffers to avoid even allocating buffers (not sure about it's xml lib, but knowing the rest of the lib, probably), I don't think std.xml has to go that far.

Most importantly, the implementation should be D-ey, rather that the abstraction used in any other language's most favoured solution, shoehorned into a D-shaped box.

Yes, I don't think the phobos solution needs to mimic exactly the API of SAX or DOM, the author should be free to use D idioms. But starting with a common proven design is probably a good idea.

-Steve

Reply via email to