Bob*_*ert 7 xml delphi proxy wsdl class
我正在使用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>
Run Code Online (Sandbox Code Playgroud)
当我生成代理类时,我得到以下内容:
departStatus = (
DEPARTED,
[System.Xml.Serialization.XmlEnumAttribute('NOT-DEPARTED')]
NOTDEPARTED);
Run Code Online (Sandbox Code Playgroud)
除非我删除以[System.xml ...开头的行,并且它不会将"NOT-DEPARTED"识别为departStatus的有效值,否则不会编译.如果我在wsdl文件中将"NOT-DEPARTED"更改为"NOT_DEPARTED"并且任何传入的xml文件都可以正常工作,但设置此项的公司坚持认为"NOT-DEPARTED"有效并且不会更改它.为什么没有正确设置departStatus枚举?任何想法如何解决这个问题?在此先感谢您的帮助.
我有一个可能的解决方法:
由于departStatus
是 基本类型xsd:string
,因此您应该能够将该departStatus
类型的所有出现更改为xsd:string
WSDL 文件中的类型。
这样您就可以传递/解释字符串'DEPARTED'
或'NON-DEPARTED'
代替使用枚举。