我很难开始使用PyXB。
假设我有一个XML模式。我想:
使用pyxb根据模式定义python对象。
将这些对象保存到磁盘上,作为满足架构的XML文件。
我怎么用PYXB做这个?下面是一个XSD文件(来自维基百科)的an XSD file编码地址,但我甚至很难开始。
<?xml version="1.0" encoding="utf-8"?>
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Address">
<xs:complexType>
<xs:sequence>
<xs:element name="FullName" type="xs:string" />
<xs:element name="House" type="xs:string" />
<xs:element name="Street" type="xs:string" />
<xs:element name="Town" type="xs:string" />
<xs:element name="County" type="xs:string" minOccurs="0" />
<xs:element name="PostCode" type="xs:string" />
<xs:element name="Country" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="IN" />
<xs:enumeration value="DE" />
<xs:enumeration value="ES" />
<xs:enumeration value="UK" />
<xs:enumeration value="US" />
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
更新
一旦我跑了
pyxbgen -u example.xsd -m example
我得到一个包含以下类的
example.py
example.Address example.STD_ANON
example.CTD_ANON example.StringIO
example.CreateFromDOM example.pyxb
example.CreateFromDocument example.sys
example.Namespace
我想我理解
CreateFromDocument
是什么-它大概读取一个XML并创建相应的python对象-但是我使用哪个类来创建一个新对象,然后将其保存到一个XML? 最佳答案
一个简单的谷歌搜索带来了这一点:http://pyxb.sourceforge.net/userref_pyxbgen.html#pyxbgen
尤其是说:
使用以下命令将其转换为python:
pyxbgen -u po1.xsd -m po1
-u参数标识一个模式
描述命名空间内容的文档。参数可以是
本地系统上文件的路径,或可访问的网络的URL
位置像
http://www.weather.gov/forecasts/xml/DWMLgen/schema/DWML.xsd-M
参数指定保存的python模块要使用的名称
为前面架构中的命名空间生成的绑定。
运行此命令后,python绑定将位于名为
上一年度
更新后编辑:
现在您已经生成了
Address
类和所有相关的助手,请查看http://pyxb.sourceforge.net/userref_usebind.html以了解如何使用它们。对于您的特定问题,您希望学习“在Python代码中创建实例”段落。基本上,要从应用程序数据生成XML,只需执行以下操作:import example
address = Address()
address.FullName = "Jo La Banane"
# fill other members of address
# ...
with open('myoutput.xml', 'w') as file
f.write(address.toxml("utf-8"))
现在由您来好奇和阅读正在生成的代码,PyxB的Doc,调用各种生成方法和实验!