C# 使用XSD文件生成XML文件

C# 使用XSD文件生成XML文件,c#,.net,xml,xsd,xml-serialization,C#,.net,Xml,Xsd,Xml Serialization,如何从XSD文件生成XML文件?假设我们有Test.XSD文件,该文件如下所示: <?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="MyClass"> <xs:complexType> <xs:sequence> <xs:element name="F

如何从XSD文件生成XML文件?

假设我们有Test.XSD文件,该文件如下所示:

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="MyClass">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Field1"
                    type="xs:string"/>
        <xs:element name="Field2"
                    type="xs:string"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>
这将生成Test.cs文件

  • 将Test.cs文件添加到解决方案中

  • 创建XSD架构中定义的
    MyClass
    实例,并对其进行XmlSerialize:

    using System.Xml.Serialization;
    // ...
    var data = new MyClass { Field1 = "test1", Field2 = "test2" };
    var serializer = new XmlSerializer(typeof(MyClass));
    using (var stream = new StreamWriter("C:\\test.xml"))
        serializer.Serialize(stream, data);
    
  • 结果:

    <?xml version="1.0" encoding="utf-8"?>
    <MyClass xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <Field1>test1</Field1>
      <Field2>test2</Field2>
    </MyClass>
    
    
    测试1
    测试2
    
    这是xsd.exe文件的路径,请确保已安装SDK

    C:\ProgramFiles(x86)\Microsoft SDK\Windows\v8.1A\bin\NETFX 4.5.1工具(这是xsd.exe(应用程序))

    如果需要,也可以查看这个。

    有关“使用xsd工具创建类:xsd.exe/classes Test.xsd”,请首先进入windows Start,然后编写“Developer..”,然后您将看到Vs2015(您的版本)的开发人员命令提示符。在命令中运行此命令

    此外,如果xsd文件很大,那么定义所有元素都需要时间。在我的情况下,我尝试在每个元素中实现数据库列,以获取公司每个客户的信息。
    (var data=new MyClass{Field1=“test1”,Field2=“test2”};)

    你好,Alex谢谢你的回答。我没有什么疑问。我应该在哪里执行命令xsd.exe/classes Test.xsd。其次,我无法将Test.cs中的类与MyClass关联起来。@sachin kulkarni-你有什么疑问?你可以在
    C:\Program Files(x86)找到它\Microsoft SDK\Windows\v7.0A\Bin
    ,或仅使用Visual Studio命令提示符。从MSDN如何访问VS命令提示符:
    <?xml version="1.0" encoding="utf-8"?>
    <MyClass xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <Field1>test1</Field1>
      <Field2>test2</Field2>
    </MyClass>