我必须使用spyne实现一个服务,该服务公开特定的wsdl
现在我无法复制这个定义:
<xs:complexType name="MyType">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="version" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
到目前为止,我能够取得的最好成绩是
class MyType(ComplexModel):
__namespace__ = "uri:my-ns"
__extends__ = primitive.Unicode
version = XmlAttribute(primitive.Unicode)
提出AttributeError
,但如果我“补丁”models/complex.py
[1]我获得:
<xs:complexType name="MyType">
<xs:complexContent>
<xs:extension base="xs:string">
<xs:attribute name="version " type="xs:string"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
几乎就到了!但我的complexType有一个complexContent
而不是simpleContent
[1]我正在使用spyne的主分支(0f587b2d606b54e41fc5cc3d33b51cc3b324a2ca),如果我添加__extends__ = primitive.Unicode
,我需要更改model/complex.py
的第602行:
if eattr._subclasses is None
到
if getattr(eattr, "_subclasses", None) is None