【问题标题】:python: how to define types for conversion to xmlpython:如何定义类型以转换为 xml
【发布时间】:2016-03-24 06:55:34
【问题描述】:

我正在在 python 2.7 中为基于 xml 的文件格式实现解析器。该格式定义了具有特定类型字段的类。

我想要做的是这样定义对象:

class DataType1(SomeCoolParent):
    a = Integer()
    b = Float()
    c = String()
    #and so on...
  • 生成的类需要能够从 XML 文档构造,并呈现回 XML(以便我可以保存和加载文件)。

  • 这看起来很像 SQLAlchemy 或 Django 中的 ORM 库...除了没有数据库,只有 XML。我不清楚我将如何使用这些库来实现我所追求的。我基本上想撕掉他们的后端数据库内容,然后自己转换为 XML,然后再返回。

  • 我目前的计划:建立一个元类和一个父类(SomeCoolParent),定义所有类型(IntegerFloatString),一般自己构建一个自定义的几乎ORM。我知道该怎么做,但似乎其他人以前一定做过/想过这个,也许想出了一个通用的解决方案......
  • 是否有一种“更好”的方法来实现具有 python 对象的固定类型结构的层次结构,从而允许或至少有助于转换为 XML?

注意事项/注意事项

  • 如前所述,我知道 SQLAlchemy 和 Django,但我不清楚如何/是否可以使用他们的 ORM 库做我想做的事。显示如何使用其中任何一个执行此操作的答案肯定很重要。
  • 我肯定对其他方法持开放态度,这两个只是我知道的 ORM 库。

【问题讨论】:

  • 我很好奇将其作为 XSD 模式(或者可能是 DTD)来处理是否有用。搜索xml dtd xsd python orm 产生了一些命中,例如generateDS。不确定这是否能帮助您实现目标,但由于 XML 可以定义数据类型,因此值得探索。
  • 我也不知道这是否能让我到达目的地,但它看起来是一个很棒的选择,很有可能这样做。如果您想将其作为答案,我会接受。

标签: python xml django orm sqlalchemy


【解决方案1】:

那里有几个XML Schema 规范。我的知识有些过时,但 XML Schema (W3C) - a.k.a. XSDrelax ng 是最流行的,因为它的学习曲线较低。考虑到这一点,应该有一个使用这些数据描述格式的好的 ORM(或者是 OXM 'Object-XML Mapper)。一些候选人是

更强大的 google foo 可能会产生更多选择。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-17
    • 1970-01-01
    • 1970-01-01
    • 2013-12-15
    • 2019-05-17
    • 1970-01-01
    • 1970-01-01
    • 2018-10-13
    相关资源
    最近更新 更多