Formar un Documento xml

Rock
13 de Enero del 2005
Buenas noches a todos

Tengo un servlet que genera un documento xml, este documento esta formado de la siguiente manera:

<project>
<tasks>
<task id=0 name=rr />
<task id=1 name=aa >
<task id=3 name=bb>
<task id=4 name=cc />
</task>
</task>
<task id=2 name=dd />
</tasks>
</project>

bueno la forma del documento xml depende de los datos que extraigo de una DB, pero es un ejemplo.
Ahora cada task es una tarea o registro en la base y cada registro tiene varios atributos entre ellos 2 que son "IPadre" que puede tener el valor de "Parent" y "Normal"; y "Identacion" que es un int, si es identacion = 0 puede ser un Parent o Normal, pero si Identacion" es mayor a 0 eso quiere decir que son hijos, como en el ejemplo de las tareas con id 3 y 4.
en mi programa hago un while que recorre los registros y los va imprimiendo en forma secuencial ascendente, voy a poner parte de mi codigo:

boolean haschild igual strTypeOfTask.equals("Parent");
if(haschild)
{
System.out.println("<task id='"+iIndice+"' name='"+ActNom+"' >");
}
if(!haschild)
{
System.out.println("<task id='"+iIndice+"' name='"+ActNom+"' />");
}

mi problema es como ponerle el tag de cierre </task> cuando una tarea tiene hijos.
Alguien me puede ayudar o aconsejar que podria hacer.
Gracias