El siguiente trozo de código genera un fichero XML llamado salida_empleados.xml que contiene los datos de un empleado ficticio (nombre, apellidos y DNI):

try {
    DocumentBuilderFactory fábricaCreadorDocumento = DocumentBuilderFactory.newInstance();
    DocumentBuilder creadorDocumento = fábricaCreadorDocumento.newDocumentBuilder();
    //Crear un nuevo documento XML
    Document documento = creadorDocumento.newDocument();
 
    //Crear el nodo raíz y colgarlo del documento
    Element elementoRaiz = documento.createElement("EMPLEADOS");
    documento.appendChild(elementoRaiz);
 
    //Crear un elemento EMPLEADO colgando de EMPLEADOS
    Element elementoEmpleado = documento.createElement("EMPLEADO");
    elementoRaiz.appendChild(elementoEmpleado);
 
    //Crear cada uno de los textos de datos del empleado
    Element elementoNombre = documento.createElement("NOMBRE");
    elementoEmpleado.appendChild(elementoNombre);
    Text textoNombre = documento.createTextNode("NURIA");
    elementoNombre.appendChild(textoNombre);
 
    Element elementoApellidos = documento.createElement("APELLIDOS");
    elementoEmpleado.appendChild(elementoApellidos);
    Text textoApellidos = documento.createTextNode("NAVARRO FLORES");
    elementoApellidos.appendChild(textoApellidos);
 
    Element elementoDNI = documento.createElement("DNI");
    elementoEmpleado.appendChild(elementoDNI);
    Text textoDNI = documento.createTextNode("4753120E");
    elementoDNI.appendChild(textoDNI);
 
    //Generar el tranformador para obtener el documento XML en un fichero
    TransformerFactory fábricaTransformador = TransformerFactory.newInstance();
    Transformer transformador = fábricaTransformador.newTransformer();
    //Insertar saltos de línea al final de cada línea
    transformador.setOutputProperty(OutputKeys.INDENT, "yes");
    //Añadir 3 espacios delante, en función del nivel de cada nodo
    transformador.setOutputProperty(OutputPropertiesFactory.S_KEY_INDENT_AMOUNT, "3");
    Source origen = new DOMSource(documento);
    Result destino = new StreamResult("salida_empleados.xml");
    transformador.transform(origen, destino);
 
} catch (ParserConfigurationException ex) {
    System.out.println("ERROR: No se ha podido crear el generador de documentos XML\n"+ex.getMessage());
    ex.printStackTrace();
} catch (TransformerConfigurationException ex) {
    System.out.println("ERROR: No se ha podido crear el transformador del documento XML\n"+ex.getMessage());
    ex.printStackTrace();
} catch (TransformerException ex) {
    System.out.println("ERROR: No se ha podido crear la salida del documento XML\n"+ex.getMessage());
    ex.printStackTrace();
}

El fichero resultante tiene el siguiente contenido:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<EMPLEADOS>
   <EMPLEADO>
      <NOMBRE>NURIA</NOMBRE>
      <APELLIDOS>NAVARRO FLORES</APELLIDOS>
      <DNI>4753120E</DNI>
   </EMPLEADO>
</EMPLEADOS>