传递xml并获得强类型的.NET OBjects

时间:2011-08-12 05:30:22

标签: .net xml xsd xsd2code

我一直在使用Linq To XML来将XML DOcument映射到.NET OBjects。

有没有人可以指导我是否存在我可以传递XML Document(字符串)并且它返回强类型.NET OBject?

我一直在研究XSD2Code并且在传递整个XML时遇到问题,因为它似乎为每个元素创建了单独的类。

2 个答案:

答案 0 :(得分:2)

非常简单:

  1. 获取XML并通过xsd.exe命令行工具运行它:

    c:\> xsd.exe yourfile.xml
    

    这将生成相应的XML模式文件(yourfile.xsd

  2. 再次运行xsd.exe工具,这次是在XSD文件上,以获得C#类:

    c:\> xsd.exe /c yourfile.xsd
    

    这将在yourfile.cs中生成一个C#类,代表您的XML内容

  3. 在项目中使用该类,只需将XML反序列化为C#对象:

    XmlSerializer ser = new XmlSerializer(typeof(YourClass));
    
    var result = ser.Deserialize(new FileStream(@"D:\temp\yourfile.xml", FileMode.Open));
    

    如果一切正常,您的result现在包含一个C#类实例,该实例表示XML文件内容的1:1。

  4. 就是这样!

答案 1 :(得分:0)

只需使用xsd util。

IIRC,你称之为xsd /c yourschema.xsd > classes.cs

如果您有一堆没有架构的XML,您还可以使用xsd来尝试推断架构。无论如何,这应该是一个很好的起点:)