mmm.. otra cosa que se me ocurre es que regreses un dataset, al fin ese te puede guardar esquemas e informacion xml, así como escribir..
Y con ello ya no importa con que lo hagas si no el XML que estará dentro de tu dataset (ds.ReadXML)
Esa podría ser otra opcion.
Que opinas..?