C++Now 2014 has ended
Please visit the C++Now website.
Back To Schedule
Thursday, May 15 • 4:30pm - 6:00pm
Designing XML API for Modern C++

Log in to save this to your schedule, view media, leave feedback and see who's attending!

While there are many XML parsing/serialization libraries available for C++, most of them feel as if they were designed for some other language first and then retrofitted to C++ with minimal consideration for its idioms. Designing an XML API that satisfies everyone appears to be surprisingly hard. The fact that Boost, let alone standard C++, still doesn't have an XML library is a testament to that, despite numerous attempts from the Boost community. In fact, the discussion seldom gets past the streaming (SAX) vs. in-memory (DOM) debate.

In this talk I would like to take a different approach and first consider common XML usage patterns in typical C++ applications. Guided by this I will then present an XML API design and implementation, for both parsing and serialization. As the usage patterns range from low-level XML processing (document-centric applications) to simply viewing XML as a data storage medium (data-centric applications), so does the presented API start with low-level access and build higher-level abstractions on top of it.

For completeness, I will also briefly cover these topics: what it means to be a conforming XML 1.0 parser (hint: the one you wrote for fun over the weekend is most likely not), existing XML libraries/tools for C++ and their advantages/disadvantages, and other XML-related technologies such as XML Schema, XPath, XQuery, and how they fit into the overall picture. I will also be seeking the audience's feedback in how the presented XML API will or won't handle use-cases that they are facing.

avatar for Boris Kolpackov

Boris Kolpackov

Chief Hacking Officer, Code Synthesis
Boris Kolpackov is a founder and CHO (Chief Hacking Officer) at Code Synthesis, a company focusing on the development of open-source tools and libraries for C++. For the past 10 years Boris has been working on solving interesting problems in the context of C++ using domain-specific... Read More →

Thursday May 15, 2014 4:30pm - 6:00pm MDT

Attendees (0)