`XmlBuilder` is a tool for declarative construction of XML. It was originally created to generate XML for unit tests, but is useful wherever you want to construct XML documents with minimal code and a low memory footprint.

The two classes of interest are {@link net.sf.practicalxml.builder.ElementNode} and {@link net.sf.practicalxml.builder.XmlBuilder}: the former contains public methods for transforming a tree into various representations, while the latter contains static methods for building such a tree:

    		import static net.sf.practicalxml.builder.XmlBuilder.*;

    		// ...

    		ElementNode root =
    		    element("root",
    				element("child1",
    		            text("this is some <text>")),
    		        element("child2",
    		        	attribute("foo", "bar"),
    		            attribute("baz", "biff")),
    		        element("http::www.example.com/foo", "ns:child3"));

    		Document dom = root.toDOM();
    		String out = root.toString();