【问题标题】:Is there a tool to generate simple c# classes from an xsd?是否有从 xsd 生成简单 c# 类的工具?
【发布时间】:2018-05-16 16:56:30
【问题描述】:

我有一个 xsd(为这篇文章大大简化了):

<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="serviceResponse" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
  <xs:element name="serviceResponse" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="searchResults">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="numberOfResults" type="xs:string" minOccurs="0" />
              <xs:element name="raceList" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="race" minOccurs="0" maxOccurs="unbounded">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="id" type="xs:string" minOccurs="0" />
                          <xs:element name="title" type="xs:string" minOccurs="0" />
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:choice>
    </xs:complexType>
  </xs:element>
</xs:schema>

我需要简单的 c# 类:

public class serviceResponse
{
    public searchResults SearchResults { get; set; }
}

public class searchResults
{
    public string numberOfResults { get; set; }
    public List<race> raceList { get; set; }
}

public class race
{
    public string id { get; set; }
    public string title { get; set; }   
}

有人告诉我 xsd.exe 甚至 csxsd.exe 可以做到这一点,但看不到那些只是从中获得简单可用类的标志。我只需要超级简单的类,这些类可以用来自 restful api 调用的 xml 填充。我不想手动编写 150 多种不同的对象类型。有这样的工具吗?

【问题讨论】:

    标签: c# xml windows-phone-7 xsd.exe


    【解决方案1】:

    试试Xsd2Code - 免费,可从 CodePlex 获得。使用 Visual Studio 插件右键单击 XSD 并为其生成 .cs 文件。

    更新(2018 年 5 月):
    不幸的是,该工具不再免费提供。您可以找到新的Xsd2Code website here 并查看许可选项。

    【讨论】:

    • Xsd2Code 不再免费。
    • @Mirek:谢谢 - 更新了我的回复以反映这一点。当我在 2011 年 5 月回答时,它一个免费工具(所以你的反对票真的没有保证).....
    【解决方案2】:

    您可以为此使用xsd.exe

    究竟是什么让这不合适?

    【讨论】:

      【解决方案3】:

      您还可以在您的 Visual Studio Extwermal 工具中包含 xsd,如下所示: 在 VS 中:

      1.选择工具

      2.选择外部工具

      3.选择添加

      ◦Title = 给出一个有意义的标题,例如“XSD”

      ◦Command = C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\xsd.exe 这是默认安装位置

      ◦参数 = $(ItemPath) /c /l:vb 使用通常使用的标准 XSD 开关。上面的“/c /l:vb”表示从当前XSD文档中创建一个VB类

      ◦Item Directory = 您的选择,但如果您希望输出与 xsd 文件位于同一目录/文件夹中,则 $(ItemDir)

      ◦按照上面的建议检查“使用输出窗口”,这样你就可以看到发生了什么

      4.点击应用 执行上述操作后,您将在下次选择 TOOLS 时看到“XSD”(或您输入的任何标题)。选择它以在当前文档上运行 xsd.exe。

      【讨论】:

        猜你喜欢
        • 2011-08-30
        • 2019-02-08
        • 2012-06-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多