使用 XSD 文件生成 XML 文件

Posted

技术标签:

【中文标题】使用 XSD 文件生成 XML 文件【英文标题】:Generating XML file using XSD file 【发布时间】:2011-09-25 16:52:50 【问题描述】:

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

【问题讨论】:

【参考方案1】:

假设我们有如下所示的 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>

    使用 xsd 工具创建类:

    xsd.exe /classes Test.xsd
    

    这将生成 Test.cs 文件。

    将 Test.cs 文件添加到您的解决方案中。

    创建MyClass 的实例,在 XSD 架构中定义并对其进行 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>

【讨论】:

嗨,Alex 感谢您的回复。我几乎没有疑问。我应该在哪里执行命令 xsd.exe /classes Test.xsd 。其次,我无法将 Test.cs 和 MyClass 中的类关联起来。 @sachin kulkarni - 你有什么疑问? XML Schema Definition Tool 您可以在 C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin 找到它,或者只使用 Visual Studio 命令提示符。 来自 MSDN 如何访问 VS 命令提示符:msdn.microsoft.com/en-us/library/ms229859(v=vs.110).aspx【参考方案2】:

这是 xsd.exe 文件的路径,请确保您已安装 SDK。

C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools(这里是xsd.exe(应用程序))

如果需要,也可以查看。 where to find xsd.exe in visual studio 2013 on windows 8

【讨论】:

【参考方案3】:

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

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

【讨论】:

以上是关于使用 XSD 文件生成 XML 文件的主要内容,如果未能解决你的问题,请参考以下文章

怎么用xmlspy将xml文档生成xsd文件

根据 XSD 兼容 XML 输入 -> XSD 兼容 XML 输出的 1:1 映射从 XSD 生成 XSLT 文件

xml中怎么引用当前目录的xsd

从 .XSD 文件生成 Java 类...?

如何用C或c++写一段代码读取xsd结构生成一个XML文件,现在我有数据文件和XSD文件

从XSD文件生成的类实例中获取XML字符串XSD.exe文件