Самый простой способ, который я нашел, - убедиться, что ваш DataSet читает XML-схему. Схема установит типы данных XML для вашего DataSet.
DataSet.ReadXmlSchema
т.е:.
DataSet ds = new DataSet();
ds.ReadXmlSchema(Server.MapPath("/YourSchema.xsd"));
ds.ReadXml(Server.MapPath("/YourXML.xml"));
У меня была проблема с использованием динамических данных в отчетах Microsoft, потому что все, что происходило из XML, было строкой. Я попытался скопировать элементы в новый DataSet с определенными dataTypes, но это было намного проще. Вы можете сделать так, чтобы c # записывал схему по умолчанию для любого XML-файла, который затем можно отредактировать по мере необходимости.
DataSet ds = new DataSet();
ds.ReadXml("Data.xml");
ds.WriteXmlSchema("Data.xsd");
Я знаю, что этот пост старый, но он помог мне, поэтому я поделился тем, что узнал.