It might be easier to just work with the higher-level DataSet, like this:

DataSet dataSet = new DataSet();
DataTable dataTable = new DataTable();

dataSet
.Tables.Add(dataTable);
// Save to disk
dataSet
.WriteXml(@"C:\MyDataset.xml");

// Read from disk
dataSet
.ReadXml(@"C:\MyDataset.xml");

sorry its in c# but logic is kinda the same