Tengo un esquema XML que usa enumeraciones, pero cuando miro el objeto XML generado en Delphi, la restricción de enumeración se ha eliminado. ¿Hay alguna forma de que Delphi genere la enumeración y la construya en el objeto?Uso de enumeraciones XML con Delphi XML Data Binding Wizard
XSD Fragmento:
<xs:simpleType name="enumType" final="restriction">
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="Each"/>
<xs:enumeration value="Units"/>
<xs:enumeration value="Area"/>
<xs:enumeration value="Payroll"/>
<xs:enumeration value="Sales"/>
<xs:enumeration value="TotalCost"/>
<xs:enumeration value="Other"/>
</xs:restriction>
</xs:simpleType>
lo que esperaría ver en Delphi es un campo que acepte una enumeración que luego se convirtió en su corresponing cadena cuando se genera el XML, pero este campo es sólo un ordinario cuerda.
Si usted tiene una enumeración como TMyEnum = (meFirst, meSecond, meThird), puede obtener el valor ordinal (numérico) usando EnumValue: = TMyEnum (GetEnumValue (typeinfo (TMyEnum), 'meFirst')); // el resultado será meFirst. A la inversa: Resultado: = Copiar (GetEnumName (typeinfo (TMyEnum), Ord (meSecond)), 3, MaxInt) arrojará la cadena 'Second'. Una nota: si GetEnumValue devolverá -1 si no se encuentra el valor, entonces puede agregar una prueba adicional en el resultado en lugar de convertirlo directamente a su tipo de enumeración. ¡Buena suerte! –
Eso es genial, gracias – LostNomad311