从XSD生成Python类和SQLAlchemy代码,以在Postgres上存储XML

Dan*_*rge 2 python xml postgresql xsd sqlalchemy

我有一些非常复杂的XSD架构可供使用.复杂意味着这些XSD中的每一个都对应于数据库中的大约20个类/表,每个表具有大约40个字段.我有18种不同的XSD来编程.

我想要实现的是:获取XSD定义的XML文件,并使用SQLAlchemy将所有数据保存在PostgreSQL数据库中.基本上我需要一个CRUD应用程序,它将遵循XSD模式的模型在数据库中保存XML文件,并且还能够从数据库中检索对象并创建XML文件.

我想避免手动创建python类,sqlalchemy表定义,CRUD代码.鉴于XSD文件的复杂性,这将是一项巨大的工作,受到许多小错误的影响.

我可以通过许多方式从XSD生成python类,如GenerateDS,PyXB等......我需要将这些对象保存在数据库中.我愿意接受任何建议,即使这个建议在概念上与我所描述的不同.

非常感谢你

jcr*_*udy 6

您可以使用generateDS从XSD创建django模型.您可以使用gends_run_gen_django脚本执行此操作,该脚本位于generateDS源中的django目录下.以下是有关该功能的一些文档.相关报价:

以下是该过程的概述:

Step 1. Generate bindings -- Run generateDS.py.
Step 2. Extract simpleType definitions from schema -- Run
gends_extract_simple_types.py.
Step 3. Generate models.py and forms.py -- Run gends_generate_django.py.
Run Code Online (Sandbox Code Playgroud)

脚本gends_run_gen_django.py执行这三个步骤.

我相信django应该给你sqlalchemy的大部分功能.但是,如果您决定使用sqlalchemy,那么generateDS'django功能可能是一个很好的模型,可以基于类似的sqlalchemy解决方案.