Я не совсем понимаю, каковы ваши цели - что вы пытаетесь выяснить? Количество байтов, которое будет использовать данный столбец (например, 4 для INT, 8 для BIGINT и т. Д.), Или фактическая текущая максимальная длина, например. все строки в столбце "ColA"?
Что касается INT и других числовых и булевых типов - они имеют фиксированную системную длину - никаких проблем там нет.
Если ваш XML не имеет схемы (XSD-файл), которая ограничивает длину строк, строковые поля из XML могут быть любой длины, действительно, поэтому после их чтения ваш DataTable не может действительно знать, какова определенная максимальная длина может быть.
Все, что вы можете сделать, это перебрать все строки в вашей DataTable, определить текущую длину строк и получить максимальную из этих текущих длин в качестве вашей системы отсчета.
Помогает ли это вообще?
Марк