Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将XML读入与其xsd匹配的类_C#_.net_Xml_Xsd_Xsd.exe - Fatal编程技术网

C# 如何将XML读入与其xsd匹配的类

C# 如何将XML读入与其xsd匹配的类,c#,.net,xml,xsd,xsd.exe,C#,.net,Xml,Xsd,Xsd.exe,所以我有一个XSD和一个Web服务,它们以相同的格式提供 现在我可以继续将xml读入文档,从类中创建对象等等。。。但我在想,一定有更简单的方法 我说得对吗 <ResultSet xsi:schemaLocation="urn:yahoo:maps http://api.local.yahoo.com/MapsService/V1/GeocodeResponse.xsd"> <Result precision="address"> <Latitude&

所以我有一个XSD和一个Web服务,它们以相同的格式提供

现在我可以继续将xml读入文档,从类中创建对象等等。。。但我在想,一定有更简单的方法

我说得对吗

<ResultSet xsi:schemaLocation="urn:yahoo:maps http://api.local.yahoo.com/MapsService/V1/GeocodeResponse.xsd">
 <Result precision="address">
  <Latitude>47.643727</Latitude>
  <Longitude>-122.130474</Longitude>
  <Address>1 Microsoft Way, #Way1</Address>
  <City>Redmond</City>
  <State>WA</State>
  <Zip>98052-6399</Zip>
  <Country>US</Country>
 </Result>
</ResultSet>

47.643727
-122.130474


您可以从XSD创建一个类型化数据集,然后用XML填充其中一个对象。这是非常常见的方法。

您可以使用将XML文本反序列化为由xsd.exe生成的类的实例
XmlSerializer将使用放置在生成的类上的元数据属性来在XML元素和对象之间来回映射

string xmlSource = "<ResultSet><Result precision=\"address\"><Latitude>47.643727</Latitude></Result></ResultSet>";

XmlSerializer serializer = new XmlSerializer(typeof(ResultSet));
ResultSet output;

using (StringReader reader = new StringReader(xmlSource))
{
    output = (ResultSet)serializer.Deserialize(reader);
}
string xmlSource=“47.643727”;
XmlSerializer serializer=新的XmlSerializer(typeof(ResultSet));
结果集输出;
使用(StringReader=new StringReader(xmlSource))
{
输出=(结果集)序列化程序。反序列化(读取器);
}
in-Liquid XML Studio在从XML模式创建高度兼容的c#或vb.net代码方面做得很好。然后可以使用此代码调用或实现web服务


如果您正在实现一个web服务,那么您可以控制使用XmlSchemaProvider和IXmlSerializable生成的WSDL,请参见!你怎么填?