Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python PyXB:无法实例化抽象类型_Python_Xml_Xsd_Abstract_Pyxb - Fatal编程技术网

Python PyXB:无法实例化抽象类型

Python PyXB:无法实例化抽象类型,python,xml,xsd,abstract,pyxb,Python,Xml,Xsd,Abstract,Pyxb,我尝试使用PyXB执行我的第一步,但有一个问题,我无法创建元素paket。我已经检查了样品,但找不到更多关于如何处理的信息。如果抽象元素更深一层,那么似乎有一个解决方案,但在这里它位于顶层 有人能帮我吗 创建类 pyxbgen -u arelda_v4.xsd -m all WARNING:pyxb.binding.generate:Complex type {http://bar.admin.ch/arelda/v4}paket renamed to paket_ Python for htt

我尝试使用PyXB执行我的第一步,但有一个问题,我无法创建元素paket。我已经检查了样品,但找不到更多关于如何处理的信息。如果抽象元素更深一层,那么似乎有一个解决方案,但在这里它位于顶层

有人能帮我吗

创建类

pyxbgen -u arelda_v4.xsd -m all
WARNING:pyxb.binding.generate:Complex type {http://bar.admin.ch/arelda/v4}paket renamed to paket_
Python for http://bar.admin.ch/arelda/v4 requires 1 modules
尝试创建paket元素:

Python 2.7.5 (default, Oct 11 2015, 17:47:16)
[GCC 4.8.3 20140911 (Red Hat 4.8.3-9)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import all
>>> paket = all.paket()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/site-packages/pyxb/binding/basis.py", line 1600, in __call__
    rv = self.typeDefinition().Factory(*args, **kw)
  File "/usr/lib/python2.7/site-packages/pyxb/binding/basis.py", line 305, in Factory
    rv = cls._DynamicCreate(*args, **kw)
  File "/usr/lib/python2.7/site-packages/pyxb/binding/basis.py", line 677, in _DynamicCreate
    return ctor(*args, **kw)
  File "/usr/lib/python2.7/site-packages/pyxb/binding/basis.py", line 2075, in __init__
    raise pyxb.AbstractInstantiationError(type(self), location, dom_node)
pyxb.exceptions_.AbstractInstantiationError: Cannot instantiate abstract type {http://bar.admin.ch/arelda/v4}paket directly
Python 2.7.5(默认,2015年10月11日,17:47:16)
[GCC 4.8.3 20140911(红帽4.8.3-9)]关于linux2
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>全部导入
>>>paket=all.paket()
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/usr/lib/python2.7/site packages/pyxb/binding/basis.py”,第1600行,在调用中__
rv=self.typeDefinition().Factory(*参数,**kw)
文件“/usr/lib/python2.7/site packages/pyxb/binding/basis.py”,第305行,工厂中
rv=cls.\u动态创建(*参数,**kw)
文件“/usr/lib/python2.7/site packages/pyxb/binding/basis.py”,第677行,在动态创建中
返回系数(*参数,**kw)
文件“/usr/lib/python2.7/site packages/pyxb/binding/basis.py”,第2075行,在__
raise pyxb.AbstractInstanceError(类型(self)、位置、dom_节点)
pyxb.exceptions\uU4.AbstractInstanceError:无法实例化抽象类型{http://bar.admin.ch/arelda/v4}直接包装
XSD


在整个系统中的Das元素id位置为。
所有文件中的Das元素id。
整个文档中的Das元素id是一个完整的元素。
整个档案中的Das元素id。
XML

谢谢
Manuel

类型paket是抽象的,但该类型用于验证v4:paket元素的元素声明中。这对于抽象类型是不允许的。抽象类型只能派生,其具体派生类型用于验证

如果您可以控制XSD文档,则将abstract设置为false,或者省略此属性,应该可以消除错误

<xs:complexType name="paket" abstract="false">
  ...
</xs:complexType>

...

类型paket是抽象的,但此类型用于验证v4:paket元素的元素声明中。这对于抽象类型是不允许的。抽象类型只能派生,其具体派生类型用于验证

如果您可以控制XSD文档,则将abstract设置为false,或者省略此属性,应该可以消除错误

<xs:complexType name="paket" abstract="false">
  ...
</xs:complexType>

...
<xs:complexType name="paket" abstract="false">
  ...
</xs:complexType>