C# 如何将XML读入与其xsd匹配的类
所以我有一个XSD和一个Web服务,它们以相同的格式提供 现在我可以继续将xml读入文档,从类中创建对象等等。。。但我在想,一定有更简单的方法 我说得对吗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&
<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,请参见!你怎么填?