我有一个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多种不同的对象类型。有没有这样做的工具?
答案 0 :(得分:6)
尝试Xsd2Code - 免费提供CodePlex。右键单击XSD并为其生成.cs文件的Visual Studio插件。
更新(2018年5月):
很遗憾,此工具已不再免费提供。您可以找到新的Xsd2Code website 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。