如何将XSD转换为Python类

Kor*_*786 40 python xml data-binding xsd xsd2code

我只是想知道是否有一个程序可以将XSD文件转换为Python类,就像JAXB为Java做的那样?

Kor*_*786 37

generateDS:我认为这是我需要的好工具

编辑:实际上,generateDS做得很好!! 它使用所有方法(setter和getter,导出到XML,从XML导入)生成Python类.它运作得很好!

  • 这不适用于python3.6所以答案已经过时了 (4认同)
  • 在测试了generateDS和PyXB后,我决定使用PyXB,因为它有更好的验证支持(模式),并且可以在python模块(setup.py)中调用生成器而无需使用system()之类的东西. (3认同)

Mar*_*duk 11

xsdata从 XSD 文件生成数据类。根据文档,它的灵感来自于 JAXB。


use*_*876 8

PyXB:http://pyxb.sourceforge.net/

  • 总而言之,对于阅读此内容的任何人来说,远离PyXB.我真的没有得到大肆宣传,与之合作非常令人沮丧. (5认同)
  • pyxb 已处于[生命终结](https://github.com/pabigot/pyxb/issues/100) (2认同)

Mat*_*t C 8

对于现在(2021 年)遇到这个问题的任何人,我建议检查xmlschema

我尝试了上述建议(尽管有 EOL 警告),但并不喜欢这种体验。然后我发现了 xmlschema,并仅用 3 行解析了我的数据,包括导入。

>> import xmlschema
>> data_schema = xmlschema.XMLSchema('my_schema.xsd')
>> data=data_schema.to_dict('my_data.xml')
Run Code Online (Sandbox Code Playgroud)

导入的数据是一个嵌套字典,其中的键和值与架构匹配。美丽的!