Wcf 我是否需要将XSD文件与WSDL一起发送以进行实现

Wcf 我是否需要将XSD文件与WSDL一起发送以进行实现,wcf,xsd,Wcf,Xsd,我正在.net中开发一个WCF服务,并希望将wsdl文件提供给能够使用我们服务的客户。我成功地生成了包含xsd导入语句的wsdl <xsd:import schemaLocation="https://URL/Service-v1.svc?xsd=xsd1" namespace="Service-v1" /> <xsd:import schemaLocation="https://URL/PricingService-v1.svc?xsd=xsd3" /> 我在互

我正在.net中开发一个WCF服务,并希望将wsdl文件提供给能够使用我们服务的客户。我成功地生成了包含xsd导入语句的wsdl

<xsd:import schemaLocation="https://URL/Service-v1.svc?xsd=xsd1" namespace="Service-v1" /> 
<xsd:import schemaLocation="https://URL/PricingService-v1.svc?xsd=xsd3"  /> 

我在互联网上搜索,但无法决定最佳选择,因为我们无法控制另一端谁将实施我们的WCF服务。

我不知道.net,但我有向第三方消费和提供web服务的经验

WSDL基本上是可以在远程服务器上调用的函数列表以及如何连接。每个函数都有一个用于请求和响应的XML格式。可以将这些模式嵌入到WSDL本身中。如果是这种情况,那么您只需发送这一个文件。在我看来,您自动生成的WSDL在不同的文件中具有请求和响应参数的模式。如果是这种情况,那么他们将同时需要WSDL和XSD


如果您只提供WSDL,那么他们将知道如何打包SOAP请求,但不知道正文中的XML格式。有点像知道某人的电话号码但不知道他们说的语言,没有多大用处!如果我是客户,我宁愿只使用XSD而不是WSDL。定义了输入和输出后,我就可以开始编码了。然后,一旦我能够访问完整的WSDL和XSD,我就可以生成一个存根来调用适当的服务,并连接我已经编写的代码。当然,如果XSD和WSDL都准备好了,那么请尽一切可能向我发送批次。

如果您将.NET与WCF一起使用,服务描述页面通常会包含以下链接:

http://localhost:12345/Foo.svc?singleWsdl

如果右键单击并从浏览器中保存该文件,则每个调用都是一个包罗万象的WSDL+模式,其中包含消费者对服务所需的所有信息。

Hi Ben Yes此WSDL是自动生成的,其中包含多个导入的XSD文件(XSD=xsd0、XSD=xsd1等)。只需将所有这些XSD文件保存为.XSD即可发送,还是只需在WSDL中包含整个模式即可。如果是这样,我该怎么做,我有什么选择。另一个选择是,如何为我在服务合同中使用的每个数据合同使用单独的XSD。谢谢如果它是以这种方式生成的,那么我会将它作为单独的文件保留。将它们分开是有意义的,特别是如果您有一个复杂的WSDL,其中有很多内容。我会将wsdl和xsd一起发送到一个zip文件夹中。第三方应该能够解决这个问题。我将通过发送带有WSDL的XSD来了解它是如何进行的,我还尝试使用Thinktecture建议的解决方案将WSDL展平,它在一个WSDL中包含所有架构,但试图找出如何将枚举元数据传递到客户端
http://localhost:12345/Foo.svc?singleWsdl