从Salesforce中的WSDL生成Apex代码时获取WSDL解析错误

时间:2012-11-27 08:26:45

标签: wsdl salesforce apex-code

在分析Amazon Product Advertising API时出现以下错误。

错误:无法解析wsdl:simpleType->元素名称不能为空。 1295

WSDL链接:http://webservices.amazon.com/AWSECommerceService/AWSECommerceService.wsdl

有任何变通方法吗?

2 个答案:

答案 0 :(得分:4)

我撤下了WSDL并在第1292行和第1295行进行了以下更改。请注意内部simpleTypes上的新名称属性。

<xs:simpleType name="positiveIntegerOrAll">
<xs:union>
    <xs:simpleType name="positiveTestOne">
        <xs:restriction base="xs:positiveInteger"/>
    </xs:simpleType>
    <xs:simpleType name="positiveTestTwo">
        <xs:restriction base="xs:string">
        <xs:enumeration value="All"/>
    </xs:restriction>
    </xs:simpleType>
    </xs:union>
</xs:simpleType>

在此之后,我能够使用此修改后的文件成功创建Apex类。我没有测试实际调用它,但生成它时没有错误。

Salesforce使用内部wsdl2apex工具,该工具不支持许多WSDL功能。有一个Supported WSDL Features列表。除此之外,您通常可以破解源WSDL以获得合理的支持级别。

答案 1 :(得分:0)

因此,您尝试使用某些用户界面将该Web服务添加到Salesforce中,并返回该错误,对吧?

如果是,那么您可以尝试在本地保存wsdl - 修复必要的节点并尝试Salesforce上传您的wsdl文件副本,或者在Internet主机上的某处上传并为Salesforce提供新地址。

如果不是,那么我需要更多关于你是如何尝试使用该wsdl的信息。