
on Fri Jul 06 2007, Stefan Seefeld <seefeld-AT-sympatico.ca> wrote:
over the last couple of years we have discussed possible XML APIs for inclusion into boost. As I already had an early prototype for such an API, I kept evolving it, based on feedback from those discussions. A couple of weeks ago I actually checked it into the sandbox (http://svn.boost.org/trac/boost/browser/sandbox/xml). Today, I adjusted the source layout to conform to the sandbox layout we agreed on, including a boost.build - based build-system.
I would appreciate if anybody interested into a future boost.xml submission would have a look, provide feedback, or even get involved into the (ongoing) development.
Okay, this is going to sound very opinionated: I find XML horrible to read, however I find most of the procedural code I've seen for manipulating it even more horrible. I would like to see a more declarative syntax for much of this stuff. element_ptr info = root->insert_element(root->begin_children(), "articleinfo"); if (title) { info->insert(info->begin_children(), title); info->insert_comment(info->begin_children(), "This title was moved"); } element_ptr author = info->append_element("author"); element_ptr firstname = author->append_element("firstname"); firstname->set_content("Joe"); element_ptr surname = author->append_element("surname"); surname->set_content("Random"); could be something like: root.push_front( tag("articleinfo")[ title ? (comment("This title was moved"), title) : NULL , tag("author")[ tag("firstname")["Joe"], tag("surname")["Random"] ] ] ) You could use Boost.Parameter to do attributes, or use runtime attributes like tag("div", attr("class") = "someclass")[ ... ] You might be familiar with Nevow's STAN, which I had a hand in. This suggestion is reminiscent of that.
PS: The current scope of the project is described in http://svn.boost.org/trac/boost/browser/sandbox/xml/README
Another suggestion: use the .rst extension for ReST documents -- Trac will preview them formatted via ReST [Oh, and I suggest you get the tab characters out of your code) Cheers, -- Dave Abrahams Boost Consulting http://www.boost-consulting.com The Astoria Seminar ==> http://www.astoriaseminar.com