XML не обязательно имеет индикатор для типа значения в узле. Вы должны знать это, или ваш код синтаксического анализа, прежде чем вы получите данные. Базы данных, которые выводят XML или электронные таблицы, часто знают о типе данных, и они попытаются дать вам какое-то определение, но нет ничего, что гарантировало бы, что то, что они называют своим фиксированным номером, будет соответствовать тому, что Ruby называет им. В результате вам все равно придется выполнить какое-либо сопоставление / сопоставление атрибутов, чтобы понять, что они вам отправляют.
Если у вас есть хеш, было бы не сложно написать код для его обхода и преобразования значений в ожидаемые вами типы, или просто делайте это по мере использования значений.
Я всегда использую Nokogiri для непосредственного анализа XML, а затем я устанавливаю типы значений при обработке узлов.