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

时间:2011-08-17 07:47:03

标签: c# xslt orm xsd xsd.exe

我有一个相当大的XSD文件here

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

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

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

  3. 有人可以建议使用工具或一系列工具/技术来实现这一目标吗?

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

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

    另外,我在Ann Lewkowicz's XSLT transform file处从XSD文件生成DDL - 但似乎已陷入无限循环 - 并且还抱怨'无限递归'

    所以我需要以下方面的帮助:

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

1 个答案:

答案 0 :(得分:0)

就个人而言,我自己也会编写发电机。那里可能有很好的发电机,但我没见过。我尝试过的所有(尽管我从未使用过XSD作为起点)会产生可怕的代码,更糟糕的是,无法自定义处理每个不可避免的错误。

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

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