首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spyne: Spyne: XML/XSD模式验证

Spyne: Spyne: XML/XSD模式验证
EN

Stack Overflow用户
提问于 2017-08-05 02:26:07
回答 1查看 664关注 0票数 0

我的测试spyne soap服务器侦听客户端发送soap请求的情况,如下所示:

代码语言:javascript
复制
<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“中?

我正在尝试:

代码语言:javascript
复制
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)

但结果是:

代码语言:javascript
复制
  <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"/>

有人能帮帮我吗?

EN

回答 1

Stack Overflow用户

发布于 2017-08-07 12:11:00

在您的服务中,尝试将多态= True添加到出站协议中。

代码语言:javascript
复制
app = Application([service],
                  'whatever.whatever',
                  in_protocol=Soap11(validator='lxml'),
                  out_protocol=Soap11(polymorphic=True)
                 )
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45517633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档