Currently, elements of a macrodef cannot have default values, even though attributes can have them. It would be nice if I can write something like: <macrodef name="foo"> <element name="a" optional="true"> <some /> <tasks /> </element> <sequential> ... </sequential> </macrodef> so that the following two invocations would be equivalent: <foo> <a> <some /> <tasks /> </a> </foo> <foo /> <!-- the nested 'a' element defaulted -->