【发布时间】: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),定义所有类型(Integer,Float,String),一般自己构建一个自定义的几乎ORM。我知道该怎么做,但似乎其他人以前一定做过/想过这个,也许想出了一个通用的解决方案...... - 是否有一种“更好”的方法来实现具有 python 对象的固定类型结构的层次结构,从而允许或至少有助于转换为 XML?
注意事项/注意事项
- 如前所述,我知道 SQLAlchemy 和 Django,但我不清楚如何/是否可以使用他们的 ORM 库做我想做的事。显示如何使用其中任何一个执行此操作的答案肯定很重要。
- 我肯定对其他方法持开放态度,这两个只是我知道的 ORM 库。
【问题讨论】:
-
我很好奇将其作为 XSD 模式(或者可能是 DTD)来处理是否有用。搜索
xml dtd xsd python orm产生了一些命中,例如generateDS。不确定这是否能帮助您实现目标,但由于 XML 可以定义数据类型,因此值得探索。 -
我也不知道这是否能让我到达目的地,但它看起来是一个很棒的选择,很有可能这样做。如果您想将其作为答案,我会接受。
标签: python xml django orm sqlalchemy