2011-07-13 58 views
0

我使用.NET框架附帶的xsd工具從XML文件創建了一個類。我將其納入我的解決方案。創建的類包含很多類,因爲我是這個主題的新手,我不知道要使用哪個類?使用XSD生成的類來反序列化C#中的XML?

StreamReader str = new StreamReader(@"c:\t.xml"); 
XmlSerializer xSerializer = new XmlSerializer(typeof(SomeClassFromCreatedClass)); 
SomeClassFromCreatedClassexporis = (SomeClassFromCreatedClass)xSerializer.Deserialize(str); 

問題是,它說錯誤在XML的文檔(2,2) 3號線。所以一般來說,我應該使用哪些創建的類?可能是什麼問題呢?

由於:-)

回答

1

聽起來就像是XML模式定義許多不同類型的(無論是單獨的元件或者更可能地,嵌套複雜類型)。 Xsd將爲每個嵌套的複雜類型生成一個獨立的類...因此您需要確定哪種類型是層次結構的根。這將是你需要反序列化:)

在一個單獨的音符類型.. XSD.EXE極爲有限,遠不如用像Xsd2Code :)

+0

使用Xsd2Code並沒有改變任何東西......我仍然得到錯誤。我如何知道哪個是層次結構的根? – grady

+0

找到解決方案,看看這裏:http://satov.blogspot.com/2006/12/xsdexe-generated-classes-causing.html – grady

+1

你的問題是「*我應該使用哪些創建的類?*」 。您鏈接的解決方案與該問題無關。請在將來更詳細地提出您的問題。 – MattDavey

0

問題是與的錯誤報告XML解串器。

如果深入瞭解所有內部異常,您會發現真正的錯誤,這非常痛苦。