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

本文关键字:DDL 自动生成 ORM 文件 XML 模式 XSD | 更新日期: 2023-09-27 18:05:43

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

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

  1. 生成DDL(对于PostgreSQL), DDL应该包含适当的初始值,如在XSD

  2. 中指定的' allowed '值。
  3. 生成一个ORM,允许我对步骤1中创建的数据库中的记录执行CRUD操作

谁能建议一个工具或一系列工具/技术来实现这一点?

如果我必须提出我自己的解决方案,谁能建议一个好的XSLT教程(最好是一本食谱-因为我已经知道一些XML/XPath)。

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

另外,我采用了Ann Lewkowicz的XSLT转换文件,从XSD文件生成DDL——但是它似乎陷入了无限循环——并且还抱怨了"无限递归"

所以我需要以下帮助:

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

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

就我个人而言,我会自己编写生成器。也许有好的发电机,但我还没见过。我所尝试使用的所有工具(尽管我从未使用过XSD作为起点)都生成了糟糕的代码,更糟糕的是,它们不可能定制来处理不可避免地出现的每个怪癖。

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

我很确定这不是你想要的答案,如果有人知道这项工作的好工具,我也会很感兴趣。