【发布时间】:2014-01-21 02:19:48
【问题描述】:
我在本地下载了多个 wsdl 文件 - A.WSDL 和 B.WSDL
A.WSDL 与 B.WSDL 具有相同的复杂类型集(近 100 个)
<xsd:complexType name="Book"> 但方法/操作不同。
例如:
A.WSDL 具有复杂类型 <xsd:complexType name="Book"> 和正在创建新操作的操作
B.WSDL 具有相同的复杂类型<xsd:complexType name="Book"> 并且操作是读取操作
我正在使用 SVCUtil 在客户端生成存根到单个文件和具有相同命名空间的存根。但得到以下错误:
错误:验证导出期间生成的某些 XML 模式时出错:
complexType http://mylocalhost/object:Book 已被声明。
约束是:
1) 我将无法更改 WSDL 文件。
2) 希望将生成的存根类放在单个名称空间中。
3) 没有 wsdl.exe
有什么方法可以跳过或覆盖重复的 complexType?
【问题讨论】:
-
复杂类型 = 类 您希望在同一个命名空间中有两个名称相同的类吗? wtf?
-
@NahumLitvin :这不是两个不同的类。两者都是相同的类,具有相同的复杂类型结构,但在两个不同的 wsdls 中。两个不同的wsdl中的操作是不同的。我无法控制 wslds。这就是它从 3rd 方系统生成的方式
-
如果您无法更改文件,请创建一个将生成新文件的小脚本。没有其他办法。
-
你好 Raghav,这两个 wsdl 文件的 XSD 是否相同?
-
@ConsultYarla :是的,两个 wsdl 文件的 XSD 相同。
标签: c# wcf svcutil.exe