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

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

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

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

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

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

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

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

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

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

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

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

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

根据我的理解,您需要构建一个Web服务,它将接受XML作为输入,进行一些处理并吐出XML。

我假设您对XML有基本的了解,但对XSD一无所知。 简单来说,XSD是一个用于validationXML文件的文档。 可以把它看成是一个关于如何构建XML文件的规则手册,你可以从W3schools阅读更多关于XSD的内容 。 现在不要担心XSD。 获取一些示例XML文档,您需要将其作为输入和输出接受。 构建一个控制台应用程序来解析示例XML文件并从数据库中获取结果。 然后使用结果通过查看输出示例XML来构建输出XML。 完成后,您可以使用.NET类从您拥有的XSDvalidation输入和输出XML。

您可以查看此答案 ,了解validation是如何完成的。

完成后,您可以创建Web服务以将XML作为字符串返回。

希望这有帮助。