您需要使用xsd.exe 工具,该工具与 Windows SDK 一起安装到类似于以下内容的目录中:
C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin
在 64 位计算机上:
C:\Program Files (x86)\Microsoft SDKs\Windows\v6.0A\bin
在 Windows 10 计算机上:
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin
在第一次运行时,您使用 xsd.exe 并将示例 XML 转换为 XSD 文件(XML 模式文件):
xsd yourfile.xml
这将为您提供yourfile.xsd,在第二步中,您可以使用xsd.exe 再次将其转换为 C# 类:
xsd yourfile.xsd /c
这应该会为您提供一个文件 yourfile.cs,其中将包含一个 C# 类,您可以使用该类来反序列化您获得的 XML 文件 - 类似于:
XmlSerializer serializer = new XmlSerializer(typeof(msg));
msg resultingMessage = (msg)serializer.Deserialize(new XmlTextReader("yourfile.xml"));
在大多数情况下应该工作得很好。
更新: XML 序列化程序将任何流作为其输入 - 文件或内存流都可以:
XmlSerializer serializer = new XmlSerializer(typeof(msg));
MemoryStream memStream = new MemoryStream(Encoding.UTF8.GetBytes(inputString));
msg resultingMessage = (msg)serializer.Deserialize(memStream);
或使用 StringReader:
XmlSerializer serializer = new XmlSerializer(typeof(msg));
StringReader rdr = new StringReader(inputString);
msg resultingMessage = (msg)serializer.Deserialize(rdr);