If you're a Common Lisper, you can whip it with cl-who or xml-emitter in an afternoon. I don't know about ant, but XML generation from Lisp macrology is trivial; the "hardest" part is deciding the Lispiest syntax for your tastes.
I like it how with macros, the biggest hurdle in creating a DSL is the actual syntax design, not the actual implementation.