
On 10/28/06, Sebastian Redl <sebastian.redl@getdesigned.at> wrote:
Hi,
Once again I'm turning to the list for discussion about a design issue in the XML library. This time I hope to avoid any discussion about the implementation on the library and focus on interface only.
The interface in question is the reader interface, also known as pull interface. Like SAX, the pull interface is an event-based interface. There are a few event types (roughly, StartElement, EndElement, Characters, and a few more for other XML features), all of which provide come with some additional data: the element name, the character data, etc.
The criteria I would apply for choosing the interface are: - performance - custom-parsing simplicity - extensibility Based on this the best interface is 1) . I think the best approach is to learn from the C++ XmlPullParser that you mention in your September 7 thread: http://www.extreme.indiana.edu/xgws/xsoap/xpp/ What is missing is the ability to handle partial files + good UNICODE support + optimizations If you agree that performance is a key requirement, at which XPP already excels, then you might want to focus on the recent ideas for creating an XML tree without memory allocations. http://www.nathanm.com/2006/09/15/techniques-for-parsing-xml-documents.html Once you have the XML stored in a tree it is viable to implement path and query operators which are really necessary. I'm glad you're tackling the xml library as this is an area I find the C++ community is behind the Java .NET camps regards