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

本文关键字:xml web 文件 服务 创建 何创建 一个 xsd | 更新日期: 2023-09-27 18:10:19

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

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

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

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

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

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

或者,您可以基于模式定义手工建模您的类。

一旦你有了你的类,你就可以在代码中添加声明性属性(见http://msdn.microsoft.com/en-us/library/83y7df3e.aspx对于asmx, DataContractDataMember对于WCF)。这些属性控制:
  1. 当接收到服务请求时,如何将传入的XML流反序列化为类型,以及
  2. 响应类型的实例在传递出服务时如何序列化为XML

这种方法的问题是,让XML根据XSD模式进行验证会有一点偶然性,因为您不能100%依赖XSD的类推断,此外,如果手工建模,您可能会错过一些细节。

无论采用哪种方法,都需要确保将请求和响应类实例清晰地序列化为XML,以便根据给定的XSD模式进行验证。

还可以看看一个名为WSCF-Blue的框架,它允许你做契约优先 web服务设计:http://wscfblue.codeplex.com/

祝你好运,如果你需要更多的细节,请通过评论告诉我。

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

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

您可以查看这个答案以了解验证是如何完成的。

完成后,您可以创建web服务以字符串形式返回XML。