使用XSD生成的类在C#中反序列化XML?

时间:2011-07-13 07:19:23

标签: c# xml-deserialization

我使用.NET框架附带的xsd工具从XML文件创建了一个类。我将它包含在我的解决方案中。创建的类包含许多类,因为我是这个主题的新手,我想知道要使用哪个类?

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

问题是,它在第​​3行显示 XML-Document(2,2)中的错误。那么一般来说,我应该使用哪些创建的类?可能是什么问题?

谢谢: - )

2 个答案:

答案 0 :(得分:1)

听起来像Xml架构定义了许多不同的类型(单独的元素或更可能的嵌套复杂类型)。 Xsd将为每个嵌套复杂类型生成一个单独的类...因此您需要确定哪个类型是层次结构的根。这将是您反序列化所需的类型:)

单独注意.. xsd.exe非常有限,使用Xsd2Code之类的东西要好得多:)

答案 1 :(得分:0)

问题在于XML反序列化程序的错误报告。

如果你深入了解所有内部异常,你会发现真正的错误,这是非常痛苦的。