如何创建接收XML的WebService
本文关键字:XML WebService 何创建 创建 | 更新日期: 2023-09-27 18:08:22
我需要构建一个接受XML数据的web服务。(它必须接受XML,不要建议其他格式,因为这不是一个选项。)
我在谷歌上搜索了"tutorial xml webservice c#"(以及它的各种排列),并遵循了几个教程。我了解如何创建一个web服务一般,并创建了几个基本的web服务来添加数字,转换温度等。
不幸的是,我所有的搜索,包括关键字"xml"answers"webservice"只出现教程如何解析xml文件一旦你有它们或从文件中读取它们。我一开始就得知道怎么弄到他们。我找不到任何解释如何构建接受XML作为输入的web服务的内容。
我应该为应该接收XML的webservice方法使用什么参数类型?它是字符串吗?它是XmlDocument吗?别的吗?
有人能提供如何从 XSD创建c#类和其他东西的教程链接吗?
我发现的一切都表明,通常是通过在c#中创建类,然后使用工具创建XSD来完成的。然而,我需要走相反的方向。我可以去哪里学这个?我不在乎是否必须用手做;我不是在找一个工具来帮我做这件事。
显然我对网络服务很缺乏经验,所以我很感激你能提供的任何帮助。但是请不要引导我去看基本的"web service教程",因为我已经学过好几本了(当他们开始重复我已经学过的材料时,我就停了下来)。
另外,请不要告诉我"你需要学习XML、Web服务、序列化等"和其他过于宽泛的回答。我意识到我需要学习这些东西,我正在努力学习。如果您可以更具体,例如"首先学习c#中的X类,然后学习Y"或"学习WSDL中的X概念,然后学习c#中序列化的Y概念,等等",这将有所帮助。
如果有人能指导我任何免费的在线课程/教程系列,通过这个过程,那将是很棒的。
编辑:好吧,显然这个问题不像我想的那么具体,所以这里有一个例子。这是另一个代理将发送到我的web服务的内容:
<Person>
<LegalName>
<FirstName>Ralph</FirstName>
<LastName>Anderson</LastName>
<PhoneticFirstName>rah-lf</PhoneticFirstName>
</LegalName>
<SSN>122-34-1232</SSN>
<Demographics>
<Sex>male</Sex>
<Height>502</Height>
</Demographics>
<DriversLicense>
<DriversLicenseNumber>1234</DriversLicenseNumber>
<IssuingState>CA</IssuingState>
</DriversLicense>
<Person>
我的理解是我需要这样写:
public Service () {
[WebMethod]
public void CreateRecord(XmlDocument newRecord)
{
// do stuff
}
}
如果我正确理解了这个问题,您可能希望将字符串作为参数,并在收到它后对其进行解析。有其他的方法可以完成同样的事情,但没有更多的信息,我不能建议他们。
为了在收到字符串后解析它,您可以使用xsd.exe
工具将XSD反向工程为c#类:http://msdn.microsoft.com/en-us/library/x6c1kb0s(v=vs.110).aspx。该命令类似于xsd.exe /c your.xsd
。
然后,使用XmlSerializer的DeSerialize方法将XML字符串转换为对象。