1

在一个 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 和 Gudgin 中,我查看了所有可用于声明枚举的数据类型,但我找不到任何可以让我在 XSD/XML 中将数值模拟为命名常量的东西,沿着命名常量或枚举的行德尔福/C++。

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

4

0 回答 0