如何创建一个基于xsd文件接收和发送xml的Web服务?

Dea*_*den 1 c# xml xsd web-services

我需要创建一个接受xml的.NET Web服务,使用它来查询数据库,然后返回xml.我已经获得了请求和响应的xsd文件.有人能指出我从哪里开始的正确方向或一个例子?

我之前没有使用过WCF,所以我更喜欢用一个简单的asmx文件来做这件事.我知道如何从数据库中获取数据,因此我丢失了xml和web服务位.

我试过谷歌搜索一段时间,但不知道从哪里开始.谢谢.

tom*_*ern 5

您遇到的问题是asmx和WCF都是代码优先的 Web服务技术.这意味着您通常从类开始,Web服务堆栈负责通过网络将您的类型公开为XML.

您从一个模式开始,这不是代码.因此,如果要使用asmx/wcf,则需要在代码中对模式进行建模.您可以通过使用xsd.exe(或WCF的svcutil.exe)从架构推断类结构来执行此操作.

或者,您可以根据模式定义手动建模您的类.

一旦有了类,就可以在代码中添加声明性属性(请参阅http://msdn.microsoft.com/en-us/library/83y7df3e.aspx以获取asmx,DataContractDataMember for WCF).这些属性控制:

  1. 在收到服务请求时,如何将传入的XML流反序列化为类型,以及
  2. 传递出服务时,响应类型的实例如何被序列化为XML

这种方法的问题在于,让你的XML对你的XSD架构进行验证会有点受到影响,因为你不能100%依赖XSD的类推断,另外如果你对它进行建模,你可能会错过一些细节.用手.

无论您采用哪种方式,都需要确保您的请求和响应类实例干净地序列化为XML,这将根据您给出的XSD架构进行验证.

另请参阅一个名为WSCF-Blue的框架,它允许您进行契约优先的 Web服务设计:http://wscfblue.codeplex.com/

祝您好运,如果您需要更多详细信息,请通过评论告诉我.