如何在XSD中表示Delphi样式枚举类型?

时间:2013-10-04 21:11:28

标签: xml delphi xsd enumeration

在Delphi应用程序中,我声明了这个枚举:

TReportEnum=(Report1,Report2,Report3,Report4,Report5);

相应地,我设置了这样的XSD枚举:

<xs:simpleType name="Reports">
    <xs:restriction base="xs:token">
        <xs:enumeration value="Report1"/>
        <xs:enumeration value="Report2"/>
        <xs:enumeration value="Report3"/>
        <xs:enumeration value="Report4"/>
        <xs:enumeration value="Report5"/>
    </xs:restriction>
</xs:simpleType>

此XSD中的枚举值是与Delphi(或C ++)中的枚举类型值对应的标记/字符串,它们基本上只是整数的命名常量。因此,当我在我的应用程序中基于此XSD处理XML时,我被迫在处理之前将枚举的XML字符串强制转换为TReportEnum(strtoInt(XMLEnum)),这会降低XSD枚举的实用性。

Skonnard and Gudgin中,我查看了可用于声明枚举的所有数据类型,我找不到任何可以在XSD / XML中模拟数值作为命名常量的内容,沿着在Delphi / C ++中命名为constant或enum。

我错过了什么吗?我想做不可能的事吗?如果没有,我该怎么做?

0 个答案:

没有答案