No soy un conocedor, pero ahi ya estas necesitando algo de logica, q tecnologia planeas usar?
Por otro lado, vi algo similar pero en lugar de levantar los tipos de datos de un XML, lo hacia desde la base de datos (dependiendo la definicion del tipo de dato: vachar, int, text, etc) en el framework
www.rubyonrails.com para ruby. Estaba muy piola incluso lo que era un select, se daba cuenta solo por las foreign keys de la base de datos...
Diego