Python Spyne, return with array
I'm working with spyne 2.12.14 in python 2.7 and django 1.9
I want to return a response like this:
?xml version='1.0' encoding='utf-8'?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<ns2:GetResponse xmlns:ns2="http://test.example.com/test">
<return>
<myHeader>
<id>1234abc</id>
<code>000</code>
<message>Success</message>
</myHeader>
<MyDetail>
<item1>myItem1</item1>
<item2>myItem2</item2>
</MyDetail>
<MyDetail>
<item1>myItem1</item1>
<item2>myItem2</item2>
</MyDetail>
</return>
</ns2:GetResponse>
</soapenv:Body>
</soapenv:Envelope>
but get this response:
?xml version='1.0' encoding='utf-8'?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<ns2:GetResponse xmlns:ns2="http://test.example.com/test">
<return>
<myHeader>
<id>1234abc</id>
<code>000</code>
<message>Success</message>
</myHeader>
<MyDetail>
<MyDetail>
<item1>myItem1</item1>
<item2>myItem2</item2>
</MyDetail>
<MyDetail>
<item1>myItem1</item1>
<item2>myItem2</item2>
</MyDetail>
</MyDetail>
</return>
</ns2:GetResponse>
</soapenv:Body>
</soapenv:Envelope>
This is my code:
class MyHeader(ComplexModel):
__namespace__ = 'http://test.example.com/test'
INHERITANCE = None,
INDICATOR = Sequence,
_type_info = {
'id': String,
'code': String,
'message': String,
}
class MyDetail(ComplexModel):
__namespace__ = 'http://test.example.com/test'
INHERITANCE = None,
INDICATOR = Sequence,
_type_info = {
'item1': String,
'item2': String,
}
class GetResponse(ComplexModel):
INHERITANCE = None,
INDICATOR = Sequence,
_type_info = {
'myHeader': MyHeader,
'MyDetail': Array(MyDetail, minOccurs=0, maxOccurs='unbounded')
}
@rpc(MyObject, _returns=[GetResponse], _out_variable_names=["return"])
def GetMiniStatement(ctx, MyObjectInfo):
do_something
Can anyone help please?
python spyne
add a comment |
I'm working with spyne 2.12.14 in python 2.7 and django 1.9
I want to return a response like this:
?xml version='1.0' encoding='utf-8'?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<ns2:GetResponse xmlns:ns2="http://test.example.com/test">
<return>
<myHeader>
<id>1234abc</id>
<code>000</code>
<message>Success</message>
</myHeader>
<MyDetail>
<item1>myItem1</item1>
<item2>myItem2</item2>
</MyDetail>
<MyDetail>
<item1>myItem1</item1>
<item2>myItem2</item2>
</MyDetail>
</return>
</ns2:GetResponse>
</soapenv:Body>
</soapenv:Envelope>
but get this response:
?xml version='1.0' encoding='utf-8'?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<ns2:GetResponse xmlns:ns2="http://test.example.com/test">
<return>
<myHeader>
<id>1234abc</id>
<code>000</code>
<message>Success</message>
</myHeader>
<MyDetail>
<MyDetail>
<item1>myItem1</item1>
<item2>myItem2</item2>
</MyDetail>
<MyDetail>
<item1>myItem1</item1>
<item2>myItem2</item2>
</MyDetail>
</MyDetail>
</return>
</ns2:GetResponse>
</soapenv:Body>
</soapenv:Envelope>
This is my code:
class MyHeader(ComplexModel):
__namespace__ = 'http://test.example.com/test'
INHERITANCE = None,
INDICATOR = Sequence,
_type_info = {
'id': String,
'code': String,
'message': String,
}
class MyDetail(ComplexModel):
__namespace__ = 'http://test.example.com/test'
INHERITANCE = None,
INDICATOR = Sequence,
_type_info = {
'item1': String,
'item2': String,
}
class GetResponse(ComplexModel):
INHERITANCE = None,
INDICATOR = Sequence,
_type_info = {
'myHeader': MyHeader,
'MyDetail': Array(MyDetail, minOccurs=0, maxOccurs='unbounded')
}
@rpc(MyObject, _returns=[GetResponse], _out_variable_names=["return"])
def GetMiniStatement(ctx, MyObjectInfo):
do_something
Can anyone help please?
python spyne
add a comment |
I'm working with spyne 2.12.14 in python 2.7 and django 1.9
I want to return a response like this:
?xml version='1.0' encoding='utf-8'?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<ns2:GetResponse xmlns:ns2="http://test.example.com/test">
<return>
<myHeader>
<id>1234abc</id>
<code>000</code>
<message>Success</message>
</myHeader>
<MyDetail>
<item1>myItem1</item1>
<item2>myItem2</item2>
</MyDetail>
<MyDetail>
<item1>myItem1</item1>
<item2>myItem2</item2>
</MyDetail>
</return>
</ns2:GetResponse>
</soapenv:Body>
</soapenv:Envelope>
but get this response:
?xml version='1.0' encoding='utf-8'?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<ns2:GetResponse xmlns:ns2="http://test.example.com/test">
<return>
<myHeader>
<id>1234abc</id>
<code>000</code>
<message>Success</message>
</myHeader>
<MyDetail>
<MyDetail>
<item1>myItem1</item1>
<item2>myItem2</item2>
</MyDetail>
<MyDetail>
<item1>myItem1</item1>
<item2>myItem2</item2>
</MyDetail>
</MyDetail>
</return>
</ns2:GetResponse>
</soapenv:Body>
</soapenv:Envelope>
This is my code:
class MyHeader(ComplexModel):
__namespace__ = 'http://test.example.com/test'
INHERITANCE = None,
INDICATOR = Sequence,
_type_info = {
'id': String,
'code': String,
'message': String,
}
class MyDetail(ComplexModel):
__namespace__ = 'http://test.example.com/test'
INHERITANCE = None,
INDICATOR = Sequence,
_type_info = {
'item1': String,
'item2': String,
}
class GetResponse(ComplexModel):
INHERITANCE = None,
INDICATOR = Sequence,
_type_info = {
'myHeader': MyHeader,
'MyDetail': Array(MyDetail, minOccurs=0, maxOccurs='unbounded')
}
@rpc(MyObject, _returns=[GetResponse], _out_variable_names=["return"])
def GetMiniStatement(ctx, MyObjectInfo):
do_something
Can anyone help please?
python spyne
I'm working with spyne 2.12.14 in python 2.7 and django 1.9
I want to return a response like this:
?xml version='1.0' encoding='utf-8'?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<ns2:GetResponse xmlns:ns2="http://test.example.com/test">
<return>
<myHeader>
<id>1234abc</id>
<code>000</code>
<message>Success</message>
</myHeader>
<MyDetail>
<item1>myItem1</item1>
<item2>myItem2</item2>
</MyDetail>
<MyDetail>
<item1>myItem1</item1>
<item2>myItem2</item2>
</MyDetail>
</return>
</ns2:GetResponse>
</soapenv:Body>
</soapenv:Envelope>
but get this response:
?xml version='1.0' encoding='utf-8'?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<ns2:GetResponse xmlns:ns2="http://test.example.com/test">
<return>
<myHeader>
<id>1234abc</id>
<code>000</code>
<message>Success</message>
</myHeader>
<MyDetail>
<MyDetail>
<item1>myItem1</item1>
<item2>myItem2</item2>
</MyDetail>
<MyDetail>
<item1>myItem1</item1>
<item2>myItem2</item2>
</MyDetail>
</MyDetail>
</return>
</ns2:GetResponse>
</soapenv:Body>
</soapenv:Envelope>
This is my code:
class MyHeader(ComplexModel):
__namespace__ = 'http://test.example.com/test'
INHERITANCE = None,
INDICATOR = Sequence,
_type_info = {
'id': String,
'code': String,
'message': String,
}
class MyDetail(ComplexModel):
__namespace__ = 'http://test.example.com/test'
INHERITANCE = None,
INDICATOR = Sequence,
_type_info = {
'item1': String,
'item2': String,
}
class GetResponse(ComplexModel):
INHERITANCE = None,
INDICATOR = Sequence,
_type_info = {
'myHeader': MyHeader,
'MyDetail': Array(MyDetail, minOccurs=0, maxOccurs='unbounded')
}
@rpc(MyObject, _returns=[GetResponse], _out_variable_names=["return"])
def GetMiniStatement(ctx, MyObjectInfo):
do_something
Can anyone help please?
python spyne
python spyne
edited Nov 15 '18 at 23:23
pushkin
4,243112953
4,243112953
asked Nov 15 '18 at 23:17
FafaFafa
11
11
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
You want a non-wrapped array.
Remove this:
'MyDetail': Array(MyDetail, minOccurs=0, maxOccurs='unbounded')
Add this:
'MyDetail': MyDetail.customize(minOccurs=0, maxOccurs='unbounded')
As an aside, your Array definition seems odd because by setting maxOccurs of an Array type to a value greater than 1, you are creating a non-wrapped array of a wrapped array which doesn't seem like what you want. (in other words, you are telling Spyne that the Array type can occur more than once, not what's inside it.)
It does'nt work. But i changed my declaration to that : 'MyDetail': Array(MyDetail, maxOccurs='unbounded', wrapped = False) and it works. Thanks for your help.
– Fafa
Dec 6 '18 at 16:00
add a comment |
change my declaration to that
'MyDetail': Array(MyDetail, maxOccurs='unbounded', wrapped = False)
and it works.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53329214%2fpython-spyne-return-with-array%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
You want a non-wrapped array.
Remove this:
'MyDetail': Array(MyDetail, minOccurs=0, maxOccurs='unbounded')
Add this:
'MyDetail': MyDetail.customize(minOccurs=0, maxOccurs='unbounded')
As an aside, your Array definition seems odd because by setting maxOccurs of an Array type to a value greater than 1, you are creating a non-wrapped array of a wrapped array which doesn't seem like what you want. (in other words, you are telling Spyne that the Array type can occur more than once, not what's inside it.)
It does'nt work. But i changed my declaration to that : 'MyDetail': Array(MyDetail, maxOccurs='unbounded', wrapped = False) and it works. Thanks for your help.
– Fafa
Dec 6 '18 at 16:00
add a comment |
You want a non-wrapped array.
Remove this:
'MyDetail': Array(MyDetail, minOccurs=0, maxOccurs='unbounded')
Add this:
'MyDetail': MyDetail.customize(minOccurs=0, maxOccurs='unbounded')
As an aside, your Array definition seems odd because by setting maxOccurs of an Array type to a value greater than 1, you are creating a non-wrapped array of a wrapped array which doesn't seem like what you want. (in other words, you are telling Spyne that the Array type can occur more than once, not what's inside it.)
It does'nt work. But i changed my declaration to that : 'MyDetail': Array(MyDetail, maxOccurs='unbounded', wrapped = False) and it works. Thanks for your help.
– Fafa
Dec 6 '18 at 16:00
add a comment |
You want a non-wrapped array.
Remove this:
'MyDetail': Array(MyDetail, minOccurs=0, maxOccurs='unbounded')
Add this:
'MyDetail': MyDetail.customize(minOccurs=0, maxOccurs='unbounded')
As an aside, your Array definition seems odd because by setting maxOccurs of an Array type to a value greater than 1, you are creating a non-wrapped array of a wrapped array which doesn't seem like what you want. (in other words, you are telling Spyne that the Array type can occur more than once, not what's inside it.)
You want a non-wrapped array.
Remove this:
'MyDetail': Array(MyDetail, minOccurs=0, maxOccurs='unbounded')
Add this:
'MyDetail': MyDetail.customize(minOccurs=0, maxOccurs='unbounded')
As an aside, your Array definition seems odd because by setting maxOccurs of an Array type to a value greater than 1, you are creating a non-wrapped array of a wrapped array which doesn't seem like what you want. (in other words, you are telling Spyne that the Array type can occur more than once, not what's inside it.)
answered Nov 18 '18 at 8:51
Burak ArslanBurak Arslan
4,42321018
4,42321018
It does'nt work. But i changed my declaration to that : 'MyDetail': Array(MyDetail, maxOccurs='unbounded', wrapped = False) and it works. Thanks for your help.
– Fafa
Dec 6 '18 at 16:00
add a comment |
It does'nt work. But i changed my declaration to that : 'MyDetail': Array(MyDetail, maxOccurs='unbounded', wrapped = False) and it works. Thanks for your help.
– Fafa
Dec 6 '18 at 16:00
It does'nt work. But i changed my declaration to that : 'MyDetail': Array(MyDetail, maxOccurs='unbounded', wrapped = False) and it works. Thanks for your help.
– Fafa
Dec 6 '18 at 16:00
It does'nt work. But i changed my declaration to that : 'MyDetail': Array(MyDetail, maxOccurs='unbounded', wrapped = False) and it works. Thanks for your help.
– Fafa
Dec 6 '18 at 16:00
add a comment |
change my declaration to that
'MyDetail': Array(MyDetail, maxOccurs='unbounded', wrapped = False)
and it works.
add a comment |
change my declaration to that
'MyDetail': Array(MyDetail, maxOccurs='unbounded', wrapped = False)
and it works.
add a comment |
change my declaration to that
'MyDetail': Array(MyDetail, maxOccurs='unbounded', wrapped = False)
and it works.
change my declaration to that
'MyDetail': Array(MyDetail, maxOccurs='unbounded', wrapped = False)
and it works.
answered Dec 6 '18 at 16:04
FafaFafa
11
11
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53329214%2fpython-spyne-return-with-array%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown