Consistency of data types

Imported from previous forum

[ original email was from John Harris - john.harris@bondmart.com ]
Hi, all,

In Version 5.0 SP2 Volume 6 - FIX Data Dictionary I see a number of apparent anomalies in the assignment of data types. For example:

AdvSide <4> has four valid values (B, S, T, and X) and is of type char - makes sense. But AdvTransType <5> has three valid values (N, C, and R) and is of type String.

CommType <13> has six valid values (numerals 1 through 6) and is of type char. AllocStatus <87> has eight valid values (numerals 0 through 7) but is of type int. MiscFeeType <139> has fourteen valid values (numerals 1 through 14) but is of type String.

Are these differences purposeful or accidental? If purposeful, why?

Thank you.

Best,
John