У меня есть следующий SOAP-запрос, сгенерированный SOAPUI с использованием подхода ComplexModel запроса Spyne.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ava="Namespace-1"
xmlns:book="spyne.example.django.models">
<soapenv:Header/>
<soapenv:Body>
<ava:GetChangesRequest>
<book:RequestIds>String1</book:RequestIds>
<book:From>2019-09-22</book:From>
<!--Optional:-->
<book:StartIndex>0</book:StartIndex>
</ava:GetChangesRequest>
</soapenv:Body>
</soapenv:Envelope>
И ComplexModel запроса ниже.
class GetChangesRequest(ComplexModel):
RequestIds = Unicode.customize(min_occurs=1)
From = Date.customize(min_occurs=1)
StartIndex = Integer.customize(default=0, min_occurs=0)
И определение @rpc равно
@rpc(
GetChangesRequest,
_returns=GetChangesResponse,
_in_message_name='GetChangesRequest',
_out_message_name='GetChangesResponse',
_body_style='bare',
)
Теперь я стараюсь избегать этих множественных пространств имен в Запросе.
За этим постом Stackoverflow Удалите пространство имен из переменных ответа Spyne
и смог управлять настройкой ответа так, как я хотел. Но не удалось найти такой подход для SOAP-запроса через Spyne.
Любые указатели здесь помогут.