【问题标题】:read XSD and create corresponding XML读取 XSD 并创建相应的 XML
【发布时间】:2014-10-16 15:41:46
【问题描述】:

我已经花了几个小时寻找这个,但我找不到任何答案...... 我有一个 XSD 文件(由另一个来源提供),我正在尝试创建一个符合该文件的 XML 文件。我已经准备好数据结构的所有数据。我需要做的就是按照 XSD 将数据导出为 XML。这可能吗?

我不打算将 XSD 导出为 XML,既不验证 XML,也不解析 XML。我从头开始,我阅读了 XSD,并在此基础上尝试通过将我的数据结构映射到 XSD 中允许的元素来创建 XML。

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

【问题讨论】:

  • 太宽泛了。当然有可能,许多工具可以做到这一点。您在寻找程序化方法吗?你只需要一个实例吗?您想编写一个执行此操作的工具吗?等等等等。
  • 我正在寻找 python 2 中的任何方法,我将在其中将 XSD 文件中的项目与我的数据结构“链接”,最后将生成最终的 XML 文件。当然,我需要遍历我的数组的一些单元格。我只是想避免编写将打开和关闭 XML 元素并添加属性的方法。这是“硬”的方式,当然不是最有效的。假设我在 XSD 中有元素,并且我有 NOISE=[82, 85, 86]。不知何故,我应该能够将该列表传递给元素并拥有 82 等。现在更好了吗?
  • 所以你基本上想要类似 JAXB for Java (vogella.com/tutorials/JAXB/article.html) 或我的 Jsonix for JavaScript (github.com/highsource/jsonix)。检查这个问题stackoverflow.com/questions/1072853/…sourceforge.net/projects/pyxb
  • 非常感谢,我不知道如何表达。我会试一试,并会在适当的时候通知你。费尔韦尔 :)

标签: python xml interface xsd marshalling


【解决方案1】:

我整理了一下,为了别人的利益我回复自己。

正如提议的那样,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 格式的方法。 文档水平很好,强烈建议将其用于任何未来的项目。

玩得开心, C.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-31
    • 1970-01-01
    • 2015-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多