I may perhaps be unaware of the XML/SGML builder generation from Seaside, love to be pointed out to.., The Html generation of Seaside uses explicit construct of classes ( WA**Tags) to do so.. Builders in dynamic manner use doesNotUnderstand: construct to generate the stream..
While it may seem desirable to have an API that uses #doesNotUnderstand: (or its equivalent in other languages) to facilitate markup generation by accepting arbitrary messages and taking them to be the names of tags, this approach is not a good idea for at least two reasons: 1) namespace prefixes cannot be specified in this way, as ":" is not a legal character within identifiers in Smalltalk (or in most other languages, for that matter), and 2) unary messages intended to be treated as tag names can collide with already-defined unary messages in the writer class or its superclasses.
3) The approach with #doesNotUnderstand: absolutely doesn't scale. Tools break in subtle ways (editors, debuggers, program checkers). Debugging is a pain. And it is slow. We've had that in Seaside up to version 2.6. Lukas -- Lukas Renggli www.lukas-renggli.ch