2

エラーが発生しています この要素は予期されていません.

Expected is {http://com.blablabla.fbs.webservice.receiver/webservice}Sms_1 ).

私はそれが何であるかを理解していません。それを修正しようとしているのは別の日です。

問題を解決するためのヒントや提案を教えてください。

送信されるXML

<env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'><env:Header></env:Header><env:Body>
<ns1:ReceiveSms xmlns:ns1='http://com.blablabla.fbs.webservice.receiver/webservice'>
<Sms_1><id>1231231231</id><from>124214124</from><operator>test</operator><to>482414245</to>
<text>Hallo</text><numberOfParts>1</numberOfParts></Sms_1></ns1:ReceiveSms></env:Body></env:Envelope> 

エラーメッセージ

senv:Client.SchemaValidationError<string>:3:0:ERROR:SCHEMASV:SCHEMAV_ELEMENT_CONTENT: Element 'Sms_1': This element is not expected. Expected is ( {http://com.blablabla.fbs.webservice.receiver/webservice}Sms_1 ).

コード:

class sms(ComplexModel):
    _type_info = {
        "text": Unicode,
        'from': Unicode,
        "id": Long,
        "operator": Unicode,
        "to": Unicode,
        "numberOfParts": Integer,
    }


class ReceiverService(ServiceBase):

    @srpc(Array(sms), _returns=Unicode)
    def ReceiveSms(Sms_1):
        for data in Sms_1:
            test = data.get_deserialization_instance()
            print test.operator
        return Sms_1

application = Application([ReceiverService],
    tns='http://com.blablabla.fbs.webservice.receiver/webservice',
    name="ReceiverService",
    in_protocol=Soap11(validator="lxml"),
    out_protocol=Soap11()
    )

hello_app = csrf_exempt(DjangoApplication(application))
4

1 に答える 1

3

リクエスト ドキュメントが間違っています。あなたは間違っている

  1. Sms_1タグ内のネームスペース プレフィックス。
  2. オブジェクト定義のネームスペース宣言。

正しいオブジェクト宣言は次のとおりです。

class sms(ComplexModel):
    __namespace__ = 'http://com.blablabla.fbs.webservice.receiver/webservice'
    _type_info = {
        "text": Unicode,
        'from': Unicode,
        "id": Long,
        "operator": Unicode,
        "to": Unicode,
        "numberOfParts": Integer,
    }

固定のリクエスト ドキュメントは次のとおりです。

<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
  <env:Body>
    <ns1:ReceiveSms xmlns:ns1="http://com.blablabla.fbs.webservice.receiver/webservice">
      <ns1:Sms_1>
        <ns1:id>1231231231</ns1:id>
        <ns1:from>124214124</ns1:from>
        <ns1:operator>test</ns1:operator>
        <ns1:to>482414245</ns1:to>
        <ns1:text>Hallo</ns1:text>
        <ns1:numberOfParts>1</ns1:numberOfParts>
      </ns1:Sms_1>
    </ns1:ReceiveSms>
  </env:Body>
</env:Envelope>
于 2013-09-14T12:13:19.753 に答える