6

我正在查看一些更新从 xsds 生成的类的工作。我认为这将是 T4 模板的一个很好的用途,但我没有看到任何人这样做的例子。本质上,我想做Linq to XSD所做的事情,但不在生产解决方案中包含 alpha 构建目标。

那里有任何相关的链接吗?


现在是一个维基。在此处存储您的相关答案。

4

3 回答 3

3

我目前正在使用 xsd2code.net,在这里找到它:http: //xsd2code.codeplex.com/。好处多多:

  • 开源,所以你可以调整/破解它

  • 用列表甚至您自己的自定义集合类型替换数组

  • 从命令行运行,或作为 Visual Studio 插件运行(右键单击 xsd,告诉生成)

我也喜欢你可以在单个 xsd 文件上运行它,如果找不到引用的 xsd(就像 xsd.exe 那样),它也不会崩溃。因此,在单个文件上运行它很容易,以防您只想对一个文件进行快速更新。

但是,T4 也应该是一个选项,我刚刚搜索了 T4 XSD 并找到了一些解决方案。

于 2009-10-05T15:56:10.763 回答
2

给你: http ://www.olegsych.com/2008/08/t4-xsd-directive/

于 2011-10-01T17:31:36.993 回答
1

我发现 XSD 很难用作代码生成的模型。它过于灵活和复杂,无法满足我的需求。强类型数据集设计器/生成器是尝试使用 XSD 作为代码生成模型的一个很好的例子。它在大多数情况下都可以正常工作,但不支持您可以扔给它的所有可能的模式。另一方面,XSD 不能表示直接生成表适配器所需的信息,因此必须创建特定于 DataSet 的扩展。

如果您决定继续使用 XSD 作为模型,您可能希望选择一个简单的子集,足以满足您需要生成的内容。一种方法是将 XSD 模式加载到 DataSet 对象中,并使用此 DataSet 对象作为模型。DataSet 元数据比通用 XSD 更易于访问。这也将允许您使用 Visual Studio 中现有的 DataSet 设计器来编辑您的模型。

于 2009-08-11T17:59:00.927 回答