2013-02-21 33 views
1

我已经尝试(并失败)做下列事情。往返XML - > XSD - >类不起作用?

  1. 创建一个示例XML文件。

    <?xml version="1.0" encoding="utf-8"?> <test1> <test2>Test3</test2> </test1>

  2. 运行它通过Visual Studio 2010的xsd生成XSD文件。

    xsd test.xml

  3. 添加XSD文件在Visual Studio 2010中的C#项目这增加了文件:

    • test.Designer.cs
    • test.xsc
    • test.xss

    和显示你如下所示,在设计者视图中。

    enter image description here

  4. 然后我尝试反序列化开始整个事情的文件:

var reader = new FileStream("xml/test.xml", FileMode.Open);
var serializer = new System.Xml.Serialization.XmlSerializer(typeof(NewDataSet)); var test = serializer.Deserialize(reader);

,我得到的错误

enter image description here

内部例外说{"<test1 xmlns=''> was not expected."}

我在做什么错?或者我应该使用xsd来生成类?

+0

什么是第2行,字符2?此外,这似乎是一个通用的XML解析错误,并非特定于序列化。 – 2013-02-21 02:44:04

回答

0

OK,这似乎是它:

xsd test.xsd /c

产生test.cs一个以此为类型,而不是NewData正确地反序列化。

1

您应该以字节打开文件,然后将它们排入MemoryStream。然后你可以从MemoryStream反序列化。

类型/方法,看看有:

,如果你需要更多的方向,我可以张贴代码示例。

+0

谢谢!让我尝试一下。 – 2013-02-21 02:55:45