2012-03-08 126 views
1

我有一個.NET Webforms應用程序,它使用來自WCF/REST Web服務的數據。大多數情況下,我們使用共享類來回傳遞數據,而且效果很好。將XML轉換爲數據集

但是,偶爾我們需要在Datagrid或類似的.NET控件中顯示這些數據,最簡單的方法是通過數據集。我知道我們可以使用Dataset.ReadXML(myXML,XmlReadMode.InferTypedSchema)方法將XML讀取到數據集中,並且工作正常。

儘管InferTypedSchema有時會推斷錯誤的數據類型。例如,它會決定一個郵政編碼是一個整數,而不是一個字符串。

我有什麼選擇?我知道我可以手動定義數據集模式,但如果可能的話,我想避免這種情況。 Web服務自動生成一個.xsd(即自動生成的響應/模式URL) - 是否有任何方法可以告訴Dataset.ReadXML使用它?或者,還有更好的方法?

回答

0

如果您提前知道您的XSD,您可以從中生成一個類文件,然後對其進行調整以確保您具有正確的數據類型(用於郵政編碼的字符串)。

XML Schema Definition Tool (Xsd.exe)

一旦你創建你的類文件,你可以使用XmlSerializer.Deserialize將XML轉換爲一類。

+0

我有課,這不是一個問題。我需要的是一個數據集。 – BDW 2012-03-08 16:05:03

1

我知道你能養活你的DataSet不只是數據,而且還與模式,像

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

,所以如果你有XSD應該罰款。

+0

有沒有辦法指向在線XSD,而不是從文件中讀取它?我想避免在界面發生變化時重新生成模式。 – BDW 2012-03-08 16:04:32