2014-10-16 87 views
1

我花了几个小时寻找这个,但我找不到任何答案... 我有一个XSD文件(由另一个源给出),我试图创建一个符合XML文件接着就,随即。我已将所有数据准备好用于数据结构。我需要做的就是按照XSD的方式将数据导出为XML。那可能吗?阅读XSD并创建相应的XML

我不想将XSD导出为XML,既不能验证XML也不能解析XML。我从头开始,我读了XSD,并基于此,我试图通过将我的数据结构映射到来自XSD的允许元素来创建XML。

概念上,它似乎可行....但是,我还没有找到任何答案。任何想法和建议(最好在Python 2中)都是值得欢迎的。

+0

太宽了。当然有可能,一些工具可以做到这一点。你在寻找一个程序化的方法吗?你只需要一个实例吗?你想编程一个这样做的工具吗?等等 – lexicore 2014-10-18 18:33:29

+0

我正在寻找python 2中的任何方法,我将从XSD文件中将项目与我的数据结构“链接”,并最终生成最终的XML文件。当然,我需要循环我的数组中的一些单元格。我只是试图避免编写将打开和关闭XML元素并添加属性的方法。这是“硬”的方式,当然不是最有效的。假设我有XSD 中的元素,并且我有NOISE = [82,85,86]。不知何故,我应该能够将该列表传递给元素,并且具有 82等等。现在更好吗? – Christos 2014-10-19 20:48:24

+0

所以你基本上想要像Java的JAXB(http://www.vogella.com/tutorials/JAXB/article.html)或我的Jsonix for JavaScript(https://github.com/highsource/jsonix)。检查这个问题http://stackoverflow.com/questions/1072853/how-to-convert-xsd-to-python-class和http://sourceforge.net/projects/pyxb/ – lexicore 2014-10-19 21:26:22

回答

0

我把它整理出来,我回复自己的其他好处。

正如提出的那样,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') 

whithin代码读取。更多信息在第12章中给出。 上述类还提供了将数据导出为XML格式的方法。 文档的级别很好,强烈建议将其用于任何未来的项目。

玩得开心, C.