Hay una forma más fácil de general el XML. Yo uso la siguiente rutina...
Código:
using (FileStream fs = File.Create(rutaFacturas))
{
doc = new System.Xml.XmlDocument();
doc.LoadXml(dsFD.GetXml());
element = doc.DocumentElement;
nodo = element.FirstChild;
nodo.Attributes["fecha"].Value = string.Format("{0:yyyy-MM-ddTHH:mm:ss}", Convert.ToDateTime(nodo.Attributes["fecha"].Value));
datos = Encoding.UTF8.GetBytes("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
fs.Write(datos, 0, datos.Length);
datos = Encoding.UTF8.GetBytes(nodo.OuterXml);
fs.Write(datos, 0, datos.Length);
fs.Flush();
}