我需要创建一个接受xml的.NET Web服务,使用它来查询数据库,然后返回xml。我已经获得了请求和响应的xsd文件。有人能指出我从哪里开始的正确方向或一个例子吗?
之前我没有使用过WCF,所以我更喜欢使用简单的asmx文件来执行此操作。我知道如何从数据库中获取数据,因此我丢失了xml和web服务位。
我试过谷歌搜索一段时间,但不知道从哪里开始。感谢。
答案 0 :(得分:5)
您遇到的问题是asmx和WCF都是代码优先 Web服务技术。这意味着您通常从类开始,Web服务堆栈负责通过网络将您的类型公开为XML。
您开始使用的是架构,而不是代码。因此,如果要使用asmx / wcf,则需要在代码中对模式进行建模。您可以通过使用xsd.exe(或WCF的svcutil.exe)从架构推断类结构来执行此操作。
或者,您可以根据模式定义手动建模您的类。
一旦有了类,就可以在代码中添加声明性属性(对于WCF,请参阅http://msdn.microsoft.com/en-us/library/83y7df3e.aspx asmx, DataContract 和 DataMember )。这些属性控制:
这种方法的问题在于,让你的XML对你的XSD架构进行验证会有点受到影响,因为你不能100%依赖XSD的类推断,另外你可能会错过一些细节如果你正在手工建模。
无论您采用哪种方式,都需要确保您的请求和响应类实例完全序列化为XML,这将根据您提供的XSD架构进行验证。
另请参阅一个名为WSCF-Blue的框架,它允许您执行契约优先 Web服务设计:http://wscfblue.codeplex.com/
祝您好运,如果您需要更多详细信息,请通过评论告诉我。
答案 1 :(得分:0)
根据我的理解,您需要构建一个Web服务,它将接受XML作为输入,进行一些处理并吐出XML。
我假设您对XML有基本的了解,但对XSD一无所知。简单来说,XSD是一个用于验证XML文件的文档。可以将它看作是如何构建XML文件的规则手册,您可以阅读有关XSD from W3schools的更多信息。现在不要担心XSD。获取一些示例XML文档,您需要将其作为输入和输出接受。构建一个控制台应用程序来解析示例XML文件并从数据库中获取结果。然后使用结果通过查看输出示例XML来构建输出XML。完成后,您可以使用.NET类从您拥有的XSD验证输入和输出XML。
您可以查看this answer以了解验证的完成方式。
完成后,您可以创建Web服务以将XML作为字符串返回。
希望得到这个帮助。