我有一组XSD,我可以从中生成数据访问类,存储过程等等。
我没有从这些方法生成数据库表 - 是否有一个工具可以为我生成DDL语句?
这与Create DB table from dataset table不同,因为我没有数据集表,而是XSD。
答案 0 :(得分:42)
有一个名为XSD2DB的命令行工具,可以从xsd文件生成数据库,可以在sourceforge上找到。
答案 1 :(得分:22)
商业产品:Altova的XML Spy。
请注意,这没有一般解决方案。 XSD可以轻松描述未映射到关系数据库的内容。
虽然您可以尝试“自动化”这个,但您的XSD必须考虑到关系数据库,否则效果不佳。
如果XSD具有无法很好映射的功能,则必须(1)设计某种映射,然后(2)编写自己的应用程序以将XSD转换为DDL。
去过那里,做到了。招聘工作 - 没有开源。
答案 2 :(得分:8)
我使用XSLT来做到这一点。 编写XSD,然后通过手写的XSLT传递数据模型,输出SQL命令。编写XSLT比您可能编写的自定义程序/脚本更快,更可重用。
至少这就是我在工作中如何做到这一点,并且由于我有时间在SO上停留:)
答案 3 :(得分:4)
XML Schema描述了层次数据模型,可能无法很好地映射到关系数据模型。将XSD映射到数据库表是非常相似的映射对象到数据库表,事实上你可以使用像Castor这样的框架,它允许你采用XML模式并生成类,数据库表和数据访问代码。我想现在有很多工具可以做同样的事情,但会有一个学习曲线,默认的映射最不像你想要的那样,所以你必须花时间定制你使用的任何工具。
XSLT可能是生成所需代码的最快方法。如果它是一个小模式硬编码,它可能比评估和学习一堆新技术更快。
答案 4 :(得分:4)
使用XSD文件创建SQL数据库模式的最佳方法是一个名为Altova XMLSpy的程序,这非常简单:
希望它有所帮助。
答案 5 :(得分:0)
使用Axis wsdl2java(可以接收.xsd文件)创建Java模型。
使用适用于Java的数据库生成工具。当然像Hibernate这样的东西可以做到这一点吗?我编写了自己的工具(花了几天时间,也用Java生成CRUD代码)以节省自己的工作时间,也许这将是一个不错的个人项目?
或者只是手动操作,这样你就可以检查一切是否正确和好!数据库工具现已足够好了,您可以通过压缩为模型创建表而不会出现太多问题。
答案 6 :(得分:0)
可能会看一下visual studio 2k8中的XSD工具......我已经从xsd创建了一个关系数据集,它可能会以某种方式帮助你。
答案 7 :(得分:0)
hyperjaxb(版本2和3)实际上生成了hibernate映射文件和相关实体对象,并且还对给定的XSD和示例XML文件执行往返测试。您可以捕获日志输出并自己查看DDL语句。 我不得不稍微调整一下,但它会给你一个基本的蓝图。