1

我尝试过(但失败了)做以下事情。

  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

    并显示在设计器视图中,如下所示。

    在此处输入图像描述

  4. 然后我尝试反序列化启动整个过程的文件:

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

我得到了错误

在此处输入图像描述

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

我究竟做错了什么?或者我xsd也应该用来生成类?

4

2 回答 2

1

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

要查看的类型/方法是:

如果您需要更多指导,我可以发布代码示例。

于 2013-02-21T02:51:26.910 回答
0

好的,好像是这样:

xsd test.xsd /c

生成test.cs 一个使用 this 作为类型,而不是NewData正确反序列化。

于 2013-02-21T02:44:32.303 回答