繁体   English   中英

C#:从 XML 模式 (XSD) 文件中自动生成 DDL 和 ORM 类

[英]C#: Autogenerating DDL and ORM classes from XML schema (XSD) file

我在这里有一个相当大的 XSD 文件。

我想从文件中生成以下内容:

  1. 生成 DDL(对于 PostgreSQL),DDL 应包含适当的初始值,如 XSD 中的“允许”值所指定

  2. 生成一个 ORM 将允许我对在步骤 1 中创建的数据库中的记录执行 CRUD 操作

任何人都可以建议一种工具或一系列工具/技术来实现这一目标吗?

如果我必须推出自己的解决方案,有人可以为 XSLT 推荐一个好的教程(最好是一本食谱——因为我已经知道一些 XML/XPath)。

顺便说一句,我在 Windows 上尝试了 xsd.exe - 它失败并打印了一条错误消息,提示 XSD 文件中存在循环引用。 然后我在 mono 上尝试了 xsd.exe,它起作用了——但是创建的文件有一些无效的语句。 我猜测(也许是错误的)xsd.exe 不是实现这两个目标的方法 - 如果我错了,请告诉我。

此外,我查看了Ann Lewkowicz 的 XSLT 转换文件,以从 XSD 文件生成 DDL - 但似乎陷入了无限循环 - 并且还抱怨“无限递归”

所以我需要以下帮助:

  • 首先,任何人都可以测试/检查XSD 文件是否确实搞砸了 - 如果是,如何解决?
  • 如何从 XSD 文件生成 DDL 和 ORM go?

我个人会自己编写生成器。 那里可能有很好的发电机,但我还没有看到。 我尝试使用的所有代码(尽管我从未使用 XSD 作为起点)生成糟糕的代码,更糟糕的是,几乎不可能自定义来处理不可避免地出现的每一个怪癖。

这样做比人们想象的要少得多,而且带来了很多好处,尤其是您实际上可以完全控制所生成的内容。 你甚至可以(并且很容易地)将它提升到一个新的水平并在运行时生成这些东西。 如果模式是最终的,则后者几乎没有意义,但如果它不断发展,则可以节省大量时间。

我很确定这不是您希望的答案,如果有人知道适合这项工作的好工具,我也会很感兴趣。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM