我的测试spyne soap服务器侦听客户端发送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”中
如何将"Name“标记放在”凭据“、"Infoevent”和"Events“中?
我正在尝试:
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"/>有人能帮帮我吗?
发布于 2017-08-07 12:11:00
在您的服务中,尝试将多态= True添加到出站协议中。
app = Application([service],
'whatever.whatever',
in_protocol=Soap11(validator='lxml'),
out_protocol=Soap11(polymorphic=True)
)https://stackoverflow.com/questions/45517633
复制相似问题