From: Stefan Seefeld (seefeld_at_[hidden])
Date: 2007-07-11 09:14:04
David Abrahams wrote:
> 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");
> element_ptr surname = author->append_element("surname");
> could be something like:
> title ? (comment("This title was moved"), title) : NULL
> , tag("author")[
> 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.
Do you think the above syntax would replace the procedural API, or merely
complement it ? While I can see the appeal of such a declarative approach,
I'm not sure how well that fits into a broader picture where users want to
use the same API not only to build a document, but traverse it, remove and
replace elements, etc.
To me, right now, what you propose looks mostly like syntactic sugar, which
can be worked on as a refinement once the basic (and common) API is established.
>> PS: The current scope of the project is described in
> Another suggestion: use the .rst extension for ReST documents -- Trac
> will preview them formatted via ReST
Sure, will do. I hadn't even thought of the README as a ReST document. :-)
I'll migrate more things to boost conventions as I have time to work on it.
> [Oh, and I suggest you get the tab characters out of your code)
That, too. Thanks,
-- ...ich hab' noch einen Koffer in Berlin...
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk