Python create xml from xsd

2020-08-13 09:07发布

问题:

I am new with python and need to implement an interface to an accounting tool. I received some XSD Files which describes the interface.

What is the easiest way to generate the XML according to the XSD? Is there any module I can use?

Do I have to create the XML all by myself and I can use the XSD just to verify it? How do I best proceed?

回答1:

I think, generateDS is the solution to your problem. Starting from chapter 5, the command

python generateDS.py -o people.py -s peoplesubs.py people.xsd

reads the XSD file and creates several classes and subclasses. It generates many data structures and getters and setters for accessing and using data :) If there is any XML file that complies with that XSD, it can be read straight away by using

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

within the code. More information is given in chapter 12. The aforementioned classes also provide methods to export data as an XML format. The level of documentation is good and it is highly suggested to use this for any future project.



回答2:

There are some projects on github that do that by using xmlschema library, for instance fortesp/xsd2xml or miaozn/xsd2xml (python2)

For instance with the former:

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

Unfortunately none of these are properly packaged though.



标签: python xml xsd