35

我有一组 XSD,我从中生成数据访问类、存储过程等。

我没有一种从这些生成数据库表的方法 - 是否有工具可以为我生成 DDL 语句?

这与从数据集表创建数据库表不同,因为我没有数据集表,而是 XSD。

4

8 回答 8

43

有一个名为XSD2DB的命令行工具,它从 xsd 文件生成数据库,可在 sourceforge 获得。

于 2009-04-20T15:20:56.727 回答
25

商业产品:Altova 的XML Spy

请注意,没有通用的解决方案。XSD 可以轻松描述未映射到关系数据库的内容。

虽然您可以尝试“自动化”这一点,但您的 XSD 必须在设计时考虑到关系数据库,否则将无法正常工作。

如果 XSD 的特性不能很好地映射,您必须 (1) 设计某种映射,然后 (2) 编写自己的应用程序将 XSD 转换为 DDL。

去过也做过。雇佣工作——没有可用的开源。

于 2008-09-26T10:29:28.667 回答
7

我使用 XSLT 来做到这一点。编写您的 XSD,然后通过输出 SQL 命令的手写 XSLT 传递您的数据模型。编写 XSLT 比您可能编写的自定义程序/脚本更快且可重用。

至少我在工作中就是这样做的,多亏了我才有时间在 SO 上闲逛 :)

于 2008-09-26T10:59:36.300 回答
6

使用 XSD 文件创建 SQL 数据库模式的最佳方法是一个名为 Altova XMLSpy 的程序,这非常简单:

  1. 创建一个新项目
  2. 在 DTDs / Schemas 文件夹上右键单击并选择添加文件
  3. 选择 XSD 文件
  4. 双击打开添加的XSD文件
  5. 转到工具栏并查看转换
  6. 他们选择从 XML 模式创建结构数据库
  7. 选择数据源
  8. 最后让它导出路由调用,立即将它们的脚本模式留给 SQL Server 来执行查询。

希望能帮助到你。

于 2013-11-27T19:32:31.920 回答
4

XML Schema 描述了分层数据模型,可能无法很好地映射到关系数据模型。将 XSD 映射到数据库表与将对象映射到数据库表非常相似,实际上您可以使用像 Castor 这样的框架来实现这两者,它允许您采用 XML 模式并生成类、数据库表和数据访问代码。我想现在有很多工具可以做同样的事情,但是会有一个学习曲线,默认映射很可能不是你想要的,所以你必须花时间定制你使用的任何工具。

XSLT 可能是准确生成所需代码的最快方法。如果它是一个小的模式硬编码,它可能比评估和学习一堆新技术更快。

于 2008-11-18T01:08:42.227 回答
0

使用 Axis wsdl2java(可以接收 .xsd 文件)创建 Java 模型。

使用接受 Java 模型的 Java 数据库生成工具。当然像 Hibernate 这样的东西可以做到这一点?我编写了自己的工具(需要几天时间,也用 Java 生成 CRUD 代码)以节省自己的工作时间,也许这将是一个不错的个人项目?

或者只是手动进行,以便您可以检查一切是否正确且良好!数据库工具现在已经足够好了,您可以轻松地为模型创建表而不会出现太多问题。

于 2008-09-26T10:54:03.740 回答
0

可能会看看 Visual Studio 2k8 中的 XSD 工具......我已经从 xsd 创建了一个关系数据集,它可能会以某种方式帮助你。

于 2008-09-27T17:23:58.107 回答
0

hyperjaxb(版本 2 和 3)实际上生成休眠映射文件和相关实体对象,并且还对给定的 XSD 和示例 XML 文件进行往返测试。您可以捕获日志输出并自己查看 DDL 语句。我不得不稍微调整它们,但它为您提供了一个基本的蓝图。

于 2008-11-18T00:45:55.813 回答