2013/4/28 Andrey Semashev
IMHO, support for SAX is also mandatory. I would even say that SAX should be the first and the primary thing to be implemented in Boost.XML, as DOM can be added later on top of it if the time for GSOC allows.
Personally, I find pull-parsing much more convenient than SAX. But personal preferences put aside, there are generally three approaches to parsing XML: 1. DOM 2. SAX, push-parsing, callback-driven 3. StAX, pull-parsing, streamreader Each approach is better than the two others in some way. We need them all three in Boost (and then in the standard). I believe that these three approaches may share some code, but don't need to be based upon each other. You might want to look at pugixml [1], a "Light-weight, simple and fast XML parser for C++ with XPath support". There might be a reason why it is not built on SAX. Concerning pull-parsing, llamaxml [2] and the streamreader from Qt [3] and may be of interest. I also wrote a simple stream reader (and writer) that you might find helpful [4]. [1] http://pugixml.org/ [2] http://llamaxml.berlios.de/ [3] http://qt-project.org/doc/qt-4.8/qxmlstreamreader.html [4] https://github.com/purpleKarrot/xml cheers, Daniel