Tomek Sowiński wrote:
auto xml = xmlWriter(outputRange);

xml.comment(books.length, " favorite books of mine.");
foreach (book; books) {
    xml.book("year", book.year, {
         foreach (author; book.authors) {
             xml.tight.authorName({
                 xml.first(author.first);
                 xml.middle(author.middle);
                 xml.last(author.last);
             });
         }
         xml.tight.title(book.title);
    });
}

This looks nice and compact Using opDispatch to specify the tag (I guess that is what you are using to create a tag "book" by calling xml.book()) feels like misusing opDispatch, though. Does it add readability in contrast to passing the tag as a string to some function?

How do you write a tag named "tight"? Or a tag calculated at runtime?

Something more conventional would be

        xml.tag("book", attr("year", book.year), { ...

but I'm not sure that pairing the attribute name and value adds readability or mere noise.

Rainer

Reply via email to