用Python从XSD创建XML

17

我对Python还不熟悉,需要实现与会计工具的接口。我收到了一些描述接口的XSD文件。

有什么简单的方法可以根据XSD生成XML文件吗?是否有可用的模块?

我必须自己创建XML文件吗?然后通过XSD进行验证?我应该如何最好地进行操作?


看一下 PyXb。这是 Python 的 XML 模式绑定。 - John Lippson
2个回答

5
我认为,generateDS是解决您问题的方案。从第5章开始,使用以下命令:
python generateDS.py -o people.py -s peoplesubs.py people.xsd

读取XSD文件并创建多个类和子类。它生成许多数据结构以及用于访问和使用数据的getter和setter :) 如果有符合该XSD的XML文件,可以直接使用它进行读取

import people
rootObject = people.parse('people.xml')

在代码内部。更多信息请参考第12章。上述类还提供将数据导出为XML格式的方法。文档水平很好,强烈建议在未来的任何项目中使用它。


11
我认为你在问题上没有抓住重点。OP的问题是如何从XSD文件生成XML(模式的实例)。在你的回答中,这将通过people.xsd生成people.xml来实现。 - rbaleksandar
1
我猜答案中缺少的部分应该是 rootObject.export('people.xml')。没有数据生成 XML 是不可能的。// 我喜欢这个答案,它指引我去使用一个非常完整且易于使用的框架。 - Daniel Alder

0

在Github上有一些项目使用xmlschema库来实现这个功能,例如fortesp/xsd2xmlmiaozn/xsd2xml (python2)

例如使用前者:

xmlgenerator = XMLGenerator('resources/pain.001.001.09.xsd', True, DataFacet())
print(xmlgenerator.execute()) # Output to console
xmlgenerator.write('filename.xml') # Output to file

不幸的是,这些都没有正确打包。


DataFacet()是什么?我在任何文件中都找不到它。 - Saurabh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接