是否有任何开源工具可以将xml架构转换为linux的数据库架构。我需要的是它应该读取xml架构,生成相应的数据库架构并使用它创建表。我试着谷歌,我能找到的只是xsd2db,用c#编写,但对我没用。我正在使用centos,我的数据库是postgresql。任何帮助表示赞赏。提前致谢。
答案 0 :(得分:4)
原生支持显示为on the way,但我无法找到原生内容。也没有找到任何好的工具来完成这项工作。
所以,我认为这将是一个整洁的周末项目,以了解更多关于XSD。我创建了xsd2pgsql来处理这个问题。它的边缘仍然非常粗糙,所以我希望你试一试,让我知道你遇到的任何问题。如果您愿意帮助,请分叉。
XML并不是表示数据库的最佳格式,因为它的3d和DB几乎是2d。所以这个脚本做了一些假设,就像root的所有元素子元素都是主表格一样,之后的任何complexType都是一个表格。也就是说,这应该适用于大多数XML Schema(或者至少是我测试过的少数几种)。
您可以使用-h
选项获取所有选项。但基本上,您可以使用XSD文件作为参数提供它,您可以使用这些选项稍微更改行为或让它直接在您的数据库上运行SQL。如果它是一个生产系统,我建议不要直接连接到数据库并确保SQL输出是否合适,并进行任何调整。
以下是存储库中示例文件的示例用法:python xsd2pgsql.py -f sample-2.xsd sample.xsd
注意:目前,这并不处理表/ XML复杂类型之间的任何关系/引用。您必须在事后添加所需的索引和任何索引。自定义命名空间也不受支持。
希望这有帮助。