linux - 是否有用于将 xml 模式转换为 linux 数据库模式的开源工具?

标签 linux postgresql xsd database-schema

是否有任何开源工具可以将 xml 模式转换为 linux 的数据库模式。我所需要的只是它应该读取 xml 模式,生成相应的数据库模式并用它创建表。我试着用谷歌搜索,我能找到的只有 xsd2db 及其用 c# 编写的,但对我没有用。我用的是centos,我的数据库是postgresql。任何帮助表示赞赏。提前致谢。

最佳答案

原生支持出现on the way ,但我找不到任何原生的东西。也没有找到任何合适的工具来完成这项工作。

因此,我认为这将是一个很好的周末项目,可以进一步了解 XSD。我创建了 xsd2pgsql来处理这个。它的边缘仍然很粗糙,所以我希望您尝试一下,如果遇到任何问题,请告诉我。如果您想提供帮助,也可以 fork 它。

XML 不是表示数据库的最佳格式,因为它是 3d 而 DB 几乎是 2d。所以这个脚本做了一些假设,比如 root 的所有元素子元素都是主表,之后的任何 complexType 都将是一个表。也就是说,这应该适用于大多数 XML 模式(或者至少是我测试过的少数模式)。

您可以使用-h 选项获取所有选项。但基本上,您可以为它提供 XSD 文件作为参数,您可以使用选项稍微更改行为或让它直接在您的数据库上运行 SQL。如果它是一个生产系统,我建议不要直接连接到数据库并确保 SQL 输出是否正常,并进行任何调整。

以下是存储库中示例文件的示例用法:python xsd2pgsql.py -f sample-2.xsd sample.xsd

注意:目前这不处理表/XML 复杂类型之间的任何关系/引用。您必须在事后添加这些索引和任何您想要的索引。自定义命名空间也不受支持。

希望这对您有所帮助。

关于linux - 是否有用于将 xml 模式转换为 linux 数据库模式的开源工具?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9312951/

相关文章:

sql - PostgreSQL - 检查值是否等于枚举值

xml - 使用 XPath 从 WSDL 文件中导入的 ("xsd:import") 架构获取 XML 元素声明

xsd - 帮助自引用 XSD 生成循环引用

linux - 在 Linux 中查找由可执行程序设置的套接字选项

ruby-on-rails - 使用 Ruby on Rails 的 PostgreSQL 用户

linux - 如何在 RHEL 5 (Linux) 中卸载然后安装 Java 我遇到错误?

java - 使用 while 循环处理异常

java - 为什么 JAXB 不生成完整的类?

linux - 使用vim创建新文件时如何自动创建整个路径?

c - 如何使用 PTRACE 获得多线程的一致 View ?