我的测试spyne soap服务器监听发送肥皂请求的客户端:
<EventMessage>
<Header>
<Timestamp>2016-01-12T18:22:58.1909735-02:00</Timestamp>
</Header>
<MainData>
<Events>
<InfoEvent>
<createdDateTime>2016-01-12T18:22:58.1909735-02:00</createdDateTime>
<Credential>
<Names>
<name>Bruce Wayne</name>
</Names>
</Credential>
<Details>
<name>Travel to europe</name>
<value>Five hundred Euros</value>
</Details>
<EventCode ref="323.243.1327.524"/>
</InfoEvent>
</Events>
</MainData>
</EventMessage>
我正在尝试创建验证架构,但我无法将“ ComplexModel ”插入另一个“ ComplexModel ”
如何在“凭据”,“ Infoevent ”和“活动”中添加标记“名称”?
我正在尝试:
class InfoEvent(ComplexModel):
createdDateTime = String
#InfoEvent = Array(Events, wrapped=False)
class Events(ComplexModel):
InfoEvent = Array(InfoEvent, wrapped=False)
class Header(ComplexModel):
Timestamp = String
class EventMessage(ComplexModel):
__namespace__ = 'http://iec.ch/TC57/2011/schema/message'
Header = Header
MainData = Array(Events, wrapped=False)
但结果是:
<xs:complexType name="Header">
<xs:sequence>
<xs:element name="Timestamp" type="xs:string" minOccurs="0" nillable="true"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="InfoEvent">
<xs:sequence>
<xs:element name="createdDateTime" type="xs:string" minOccurs="0" nillable="true"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Events">
<xs:sequence>
<xs:element name="InfoEvent" type="tns:InfoEvent" minOccurs="0" maxOccurs="unbounded" nillable="true"/>
</xs:sequence>
</xs:complexType>
<xs:element name="Header" type="tns:Header"/>
<xs:element name="InfoEvent" type="tns:InfoEvent"/>
<xs:element name="Events" type="tns:Events"/>
有人可以帮助我吗?
答案 0 :(得分:0)
在您的服务中,尝试将多态= True添加到出站协议。
app = Application([service],
'whatever.whatever',
in_protocol=Soap11(validator='lxml'),
out_protocol=Soap11(polymorphic=True)
)