2008-09-26 78 views

回答

18

商业产品:Altova的XML Spy

请注意,没有通用的解决方案。一个XSD可以很容易地描述一些没有映射到关系数据库的东西。

尽管您可以尝试“自动化”这个,但您的XSD必须考虑设计关系数据库,否则它将无法正常工作。

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

在那里,做到了。为招聘工作 - 没有可用的开源。

+0

如果您有企业许可证。 – jaccso 2014-08-14 18:42:02

+0

XML Spy 2015完全没有帮助我,但XSD2DB的确如此。 – 2014-09-23 15:07:28

0

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

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

或者只是手动操作,以便您可以检查一切正确和好!数据库工具已经足够好,现在您可以通过为模型创建表格来压缩,而不会出现太多问题。

8

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

至少这就是我如何做到这一点的工作,并感谢我有时间挂出SO :)

+1

你有使用*** XSLT ***吗? http://stackoverflow.com/help/how-to-answer – Kiquenet 2017-03-06 09:04:01

0

不妨来看看在Visual Studio中2K8的XSD工具......我创建来自xsd的关系数据集,它可能会帮助你以某种方式。

+0

可以使用`xsd.exe`生成模式,但您必须自己添加关系,请参阅[MSDN上的XML大容量加载示例](http:/ /msdn.microsoft.com/en-us/library/ms171806.aspx)或[此问题]中的示例(http://stackoverflow.com/questions/13397885/bulk-load-xml-referring-to-auto -Increment父-ID /)。 (我似乎记得修复了一些数据类型,但也许这是从`XML`生成`XSD`)。 – 2013-07-04 11:29:45

+0

正如我曾经提到的[这里](http://stackoverflow.com/questions/74879/any-tools -xml-instance-document/74939#comment18122579_74939)`xsd.exe`的目录似乎在Windows 7上已更改。我在_many_ Microsoft SDKs目录中创建了一个xsd-schema-from-an-xml-所以它似乎不再依赖于Visual Studio_(?)。一个目录是:`C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v7.0A \ Bin \ NETFX 4.0 Tools`。 – 2013-07-04 11:31:24

0

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

3

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

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

40

有一个名为XSD2DB的命令行工具,它可以从sourceforge中的xsd-files生成数据库。

3

创建使用一个XSD文件中的SQL数据库架构的最佳方式是一种叫做Altova的XMLSpy的程序,这是非常简单的:

  1. 创建一个新项目
  2. 在的DTD /模式文件夹中右击并选择添加文件
  3. 选择XSD文件
  4. 打开通过双击
  5. 转到工具栏,并期待转换
  6. 添加了XSD文件
  7. 他们选择从XML模式创建结构数据库
  8. 选择数据源
  9. 最后让它导出路由调用立即离开他们的脚本架构与SQL Server执行查询。

希望它有帮助。