Я попытался определить ваше перечисление с WsdlImp.exe 15.0.3953.35171, предоставленным Delphi XE (обновление 1). Опция «Проверять членов перечисления» отмечена.
Вот код для сгенерированного перечисления.
TEnumTest = (
_7,
_6,
_5,
_4,
_3,
_2,
_1,
_12,
_22,
_32,
_42,
_52,
_62
);
И регистрационный код для перечисления значений.
RemClassRegistry.RegisterExternalPropName(TypeInfo(TEnumTest), '_7', '-7');
RemClassRegistry.RegisterExternalPropName(TypeInfo(TEnumTest), '_6', '-6');
RemClassRegistry.RegisterExternalPropName(TypeInfo(TEnumTest), '_5', '-5');
RemClassRegistry.RegisterExternalPropName(TypeInfo(TEnumTest), '_4', '-4');
RemClassRegistry.RegisterExternalPropName(TypeInfo(TEnumTest), '_3', '-3');
RemClassRegistry.RegisterExternalPropName(TypeInfo(TEnumTest), '_2', '-2');
RemClassRegistry.RegisterExternalPropName(TypeInfo(TEnumTest), '_1', '-1');
RemClassRegistry.RegisterExternalPropName(TypeInfo(TEnumTest), '_12', '1');
RemClassRegistry.RegisterExternalPropName(TypeInfo(TEnumTest), '_22', '2');
RemClassRegistry.RegisterExternalPropName(TypeInfo(TEnumTest), '_32', '3');
RemClassRegistry.RegisterExternalPropName(TypeInfo(TEnumTest), '_42', '4');
RemClassRegistry.RegisterExternalPropName(TypeInfo(TEnumTest), '_52', '5');
RemClassRegistry.RegisterExternalPropName(TypeInfo(TEnumTest), '_62', '6');
Похоже, это нормально для меня. Если вы этого не получите, возможно, у вас более старая версия WsdlImp.exe. Последним средством будет изменение вашего сгенерированного кода вручную.