我已尝试(并且失败)执行以下操作。
创建示例XML文件。
<?xml version="1.0" encoding="utf-8"?>
<test1>
<test2>Test3</test2>
</test1>
通过Visual Studio 2010的xsd
运行它以生成XSD文件。
xsd test.xml
将XSD文件添加到Visual Studio 2010中的C#项目。这会添加文件:
test.Designer.cs
test.xsc
test.xss
并显示在设计器视图中,如下所示。
然后我尝试反序列化启动整个文件的文件:
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
来生成课程吗?
答案 0 :(得分:1)
您应该将文件作为字节打开,然后将它们排队到MemoryStream中。然后你可以从MemoryStream中反序列化。
要查看的类型/方法是:
如果您需要更多指示,我可以发布代码示例。
答案 1 :(得分:0)
好吧,好像就是这样:
xsd test.xsd /c
使用此作为类型生成test.cs
,而不是NewData
正确反序列化。