我是否需要使用WSDL发送XSD文件以实现

时间:2012-10-16 10:32:28

标签: wcf xsd

我正在.net中开发WCF服务,并希望将wsdl文件提供给可以使用我们服务的客户。我成功生成了wsdl,其中包含xsd import语句

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

但我想知道的是,只需将wsdl发送给客户,或者我是否需要向他们发送XSD文件..

如何为每个类生成单独的XSD文件,如class1.xsd,class2.xsd,class3.xsd

这是我的项目结构 的的DataModel   将Class1.cs   Class2.cs   Class3.cs   Response.cs 的合同   IService1具有以下合同     响应GetQuote1(Class1 class1Request);     响应GetQuote2(Class2 class2Request);     响应GetQuote2(Class2 class2Request);

服务  服务1:Iservice1

  public Response GetQuote1(Class1 class1Request)
  {
          return response;
  }

  public Response GetQuote2(Class2 class2Request)
  {
          return response;
  }

  public Response GetQuote3(Class3 class3Request)
  {
          return response;
  }

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

2 个答案:

答案 0 :(得分:0)

我不知道.net但我有过消费和向第三方提供网络服务的经验。

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

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

答案 1 :(得分:0)

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

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

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