将XML转换为数据集

时间:2012-03-08 15:16:42

标签: c# .net wcf-client

我有一个.NET webforms应用程序,它使用来自WCF / REST Web服务的数据。大多数情况下,我们使用共享类来回传递数据,这很有效。

但是,偶尔我们需要在Datagrid或类似的.NET控件中显示这些数据,最方便的方法是通过数据集。我知道我们可以使用Dataset.ReadXML(myXML,XmlReadMode.InferTypedSchema)方法将XML读入数据集,并且一直运行正常。

但有时,InferTypedSchema会推断出错误的数据类型。例如,它将决定邮政编码是整数,而不是字符串。

我有什么选择?我知道我可以手动定义数据集架构,但是如果可能的话我想避免这种情况。 Web服务自动生成.xsd(即自动生成的响应/模式URL) - 有什么方法可以告诉Dataset.ReadXML使用它吗?或者有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

我知道您不仅可以为数据提供数据,还可以提供模式,例如

dataSet.ReadXmlSchema(new System.IO.StreamReader("schema.xsd"));

所以,如果你有xsd应该没问题。

答案 1 :(得分:0)

如果您提前知道XSD,可以从中生成一个类文件,然后调整它以确保您拥有正确的数据类型(邮政编码的字符串)。

XML Schema Definition Tool (Xsd.exe)

创建类文件后,可以使用XmlSerializer.Deserialize将XML转换为类。