能否结合来自 WCF 服务的 WSDL 和 XSD 数据?

Posted

技术标签:

【中文标题】能否结合来自 WCF 服务的 WSDL 和 XSD 数据?【英文标题】:Can you combine the WSDL and XSD data from a WCF service? 【发布时间】:2010-12-08 01:22:38 【问题描述】:

是否可以创建单个文件以从 WCF 生成的 WSDL 文件(以及也从该服务生成的任何其他 XSD 文件)生成客户端

我可以使用 svcutil.exe 生成一个有效的客户端,同时传递 wsdl 文件和每个 xsd 文件,但是我有一个客户正在使用 php 工具来生成它,我想看看我是否可以让他们轻松只有一个文件而不是多个文件。

【问题讨论】:

【参考方案1】:

是的,您可以使用一些巧妙的 WCF 扩展。查看这些现成的解决方案:

Flatten your WSDL with this Custom ServiceHost for WCF Improving WCF Interoperability: Flattening your WSDL Flatten WCF WSDL on demand Inline XSD in WSDL for WCF

希望有帮助!

马克

【讨论】:

【参考方案2】:

有可能。

WSDL types 元素可以包含多个模式元素(每个都有自己的命名空间), 这意味着来自导入的 WSDL/XSD 的 types 元素可以放在表示相同命名空间的模式元素下的根文档的 types 元素中。 其他 WSDL 元素(messageportTypebinding & service)使用根定义 元素命名空间,因此这些来自不同命名空间的导入元素放在同一个文档中时不能保留在不同的命名空间下。

但是请注意,只有 types 命名空间用于构造 SOAP 消息,因此更改 这些其他元素的命名空间(如果需要)不会影响生成的 SOAP 消息。

【讨论】:

以上是关于能否结合来自 WCF 服务的 WSDL 和 XSD 数据?的主要内容,如果未能解决你的问题,请参考以下文章

WCF 如何从 wsdl 和 xsd 生成服务 - 合同优先

如何更改 WCf 服务的 wsdl 文件中的默认模式位置?

XSD 第一个合约 - WCF Soap Web 服务

下载 WCF 服务公开的所有 WSDL 文件的最佳方法是啥?

下载 WCF 服务公开的所有 WSDL 文件的最佳方法是啥?

BizTalk Web 参考 - 生成的 XSD 具有来自 WSDL 的“丢失”信息