First clone the DataTable, make all columns of type string, replace all null values with string.empty, then call GetXml on a new DataSet. //First bind XML data in to data set..objDataSet DataTable dt = objDataSet.Tables[0]; DataTable dtCloned = dt.Clone(); foreach (DataColumn dc in dtCloned.Columns) dc.DataType = typeof(string); foreach (DataRow row in dt.Rows) { dtCloned.ImportRow(row); } foreach (DataRow row in dtCloned.Rows) { for (int i = 0; i < dtCloned.Columns.Count; i++) { dtCloned.Columns[i].ReadOnly = false; if (string.IsNullOrEmpty(row[i].ToString())) row[i] = string.Empty; } } DataSet ds = new DataSet(); ds.Tables.Add(dtCloned); string xml = ds.GetXml();