gpt4 book ai didi

xml - Delphi 由于枚举名称中的连字符导致错误导入 WSDL,我该怎么办?

转载 作者:数据小太阳 更新时间:2023-10-29 01:48:25 27 4
gpt4 key购买 nike

我正在使用 Delphi 并使用来自另一家公司的 wsdl 文件来设置我的代理类以使用来自他们的 Web 服务的数据。 wsdl 文件包含以下内容:

  <xsd:simpleType name="departStatus">
<xsd:annotation>
<xsd:documentation>Enumerates allowable departure statuses (DEPARTED, NOT-DEPARTED)</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="DEPARTED"/>
<xsd:enumeration value="NOT-DEPARTED"/>
</xsd:restriction>
</xsd:simpleType>

当我生成代理类时,我得到以下信息:

  departStatus = (
DEPARTED,
[System.Xml.Serialization.XmlEnumAttribute('NOT-DEPARTED')]
NOTDEPARTED);

除非我删除以 [System.xml... 开头的行,否则它不会编译,并且它不会将“NOT-DEPARTED”识别为 departStatus 的有效值。如果我在 wsdl 文件和任何传入的 xml 文件中将“NOT-DEPARTED”更改为“NOT_DEPARTED”,它工作正常,但设置它的公司坚持认为“NOT-DEPARTED”是有效的并且不会更改它。为什么没有正确设置 departStatus 枚举?任何想法如何解决这个问题?在此先感谢您的帮助。

最佳答案

我有一个可能的解决方法:

由于 departStatus 是基本类型 xsd:string,您应该能够将所有出现的 departStatus 类型更改为 xsd:string 在 WSDL 文件中。

这样您就可以传递/解释字符串 'DEPARTED''NON-DEPARTED' 而不是使用枚举。

关于xml - Delphi 由于枚举名称中的连字符导致错误导入 WSDL,我该怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5875383/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com