是否有工具从xsd生成简单的c#类?

时间:2011-05-14 14:32:27

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

我有一个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多种不同的对象类型。有没有这样做的工具?

3 个答案:

答案 0 :(得分:6)

尝试Xsd2Code - 免费提供CodePlex。右键单击XSD并为其生成.cs文件的Visual Studio插件。

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

enter image description here

答案 1 :(得分:3)

您可以使用xsd.exe

究竟是什么让这个不适合?

答案 2 :(得分:1)

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

1.选择工具

2.选择外部工具

3.选择添加

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

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

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

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

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

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