我需要构建一个接受XML数据的Web服务。 (它必须接受XML,不建议替代格式,因为这不是一种选择。)
我用谷歌搜索了“教程xml webservice c#”(及其各种排列)并遵循了几个教程。我了解如何创建一般的Web服务,并创建了几个基本的Web服务来添加数字,转换温度等。
不幸的是,我所有包含关键字“xml”和“webservice”的搜索只会提供有关如何解析XML文件或从文件中读取XML文件的教程。我需要知道如何在第一时间获得它们。我找不到任何解释如何构建接受XML作为输入的Web服务的东西。
我应该为应该接收XML的webservice方法使用什么参数类型?它是一个字符串?它是一个XmlDocument?别的什么?
有人可以提供指向如何从XSD创建C#类和诸如此类的东西的教程的链接吗?
我发现的一切都表明它通常是通过在C#中创建类然后使用工具来创建XSD来完成的。但是,我需要走相反的方向。我在哪里可以学习这样做?我不在乎我是否必须手工完成;我不是在寻找一种工具来为我做这件事。
显然我对Web服务缺乏经验,所以我感谢您提供的任何帮助。但请不要指导我参加基本的“网络服务教程”,因为我已经完成了几次(当我们开始重复我已经完成的材料时,我停了下来)。
另外,请不要告诉我“您需要了解XML,Web服务,序列化等”以及其他如此广泛的挥手答案。我知道我需要获得这些东西,我正在努力。如果您可以更具体,例如“首先了解c#中的X类,然后了解Y”或“了解WSDL中的X概念,然后了解C#中的Y序列化概念”,这将有所帮助。
如果有人能指导我完成整个过程的任何免费在线课程/教程系列,那也是很棒的。
编辑:好的,显然这个问题并不像我想的那样具体,所以这里有一个例子。
这是另一个代理商将发送到我的网络服务的内容:
<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
工具将qSD反向工程为C#类:http://msdn.microsoft.com/en-us/library/x6c1kb0s(v=vs.110).aspx。该命令看起来像xsd.exe /c your.xsd
。
然后,您将使用XmlSerializer的DeSerialize方法将XML字符串转换为对象。
希望这可以帮助。