将XML转换为数据集

将XML转换为数据集

问题描述:

我有一个.NET Webforms应用程序,它使用来自WCF/REST Web服务的数据。大多数情况下,我们使用共享类来回传递数据,而且效果很好。将XML转换为数据集

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

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

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

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

XML Schema Definition Tool (Xsd.exe)

一旦你创建你的类文件,你可以使用XmlSerializer.Deserialize将XML转换为一类。

+0

我有课,这不是一个问题。我需要的是一个数据集。 – BDW 2012-03-08 16:05:03

我知道你能养活你的DataSet不只是数据,而且还与模式,像

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

,所以如果你有XSD应该罚款。

+0

有没有办法指向在线XSD,而不是从文件中读取它?我想避免在界面发生变化时重新生成模式。 – BDW 2012-03-08 16:04:32