Burak,
"""
import os, sys, time
from spyne.model.primitive import String, Integer, Boolean, DateTime, Float
from spyne.server import wsgi
from spyne.model import ByteArray
from spyne.model.complex import Array, ComplexModel, XmlAttribute
from spyne.model.enum import Enum
from spyne import *
from spyne.util.xml import *
from lxml import etree
class FingerImageType(ComplexModel):
#__namespace__ = 'tns'
Version = String
NumberOfDistinctPositions = Integer
RepresentationList = String
class Template(ComplexModel):
Position = String
Data = String
class TemplateListType(ComplexModel):
#__namespace__ = 'tns'
TemplateType = XmlAttribute(String)
templates = Array(Template, wrapped=False)#max_occurs='unbounded',
sub_name='Template')
__type_name__ = 'TemplateList'
class RecuperaConteudoType(ComplexModel):
id = String
class RecuperaConteudoResponseType(ComplexModel):
#__namespace__ = 'tns'l
FingerImagem = FingerImageType
templates = Array(TemplateListType, sub_name='Templates')
print etree.tostring(
get_object_as_xml(RecuperaConteudoResponseType(
FingerImagem=FingerImageType(),
templates = [
TemplateListType(
TemplateType='ANSI',
templates=[
Template(Position='one', Data='data-one'),
Template(Position='two', Data='data-two')
]
),
TemplateListType(
TemplateType='XYT_NIST',
templates=[
Template(Position='three', Data='data-three'),
Template(Position='two', Data='data-four')
]
)
]
)
),
pretty_print=True
)
"""
I am almost there: this prints the following:
<RecuperaConteudoResponseType>
<Templates>
<TemplateList TemplateType="ANSI">
<templates>
<Template>
<Position>one</Position>
<Data>data-one</Data>
</Template>
<Template>
<Position>two</Position>
<Data>data-two</Data>
</Template>
</templates>
</TemplateList>
<TemplateList TemplateType="XYT_NIST">
<templates>
<Template>
<Position>three</Position>
<Data>data-three</Data>
</Template>
<Template>
<Position>two</Position>
<Data>data-four</Data>
</Template>
</templates>
</TemplateList>
</Templates>
<FingerImagem/>
</RecuperaConteudoResponseType>
The problem is that I want to get rid of <templates> container, I want
TemplateList to have, inside, directly, Template blocks !
On 30/04/2015 05:26, Burak Arslan wrote:
Hello,
On 04/30/15 03:11, Patricio Stegmann wrote:
Burak,
There is the message, but inside is the result which has its own
name. It is automatically generated with Result suffix, but my ws
consumer didnt want that. He wanted the name of it's spec on it. I
added that keyword and slightly changed some spyne lines.
I had lot of issues using multiple namespaces, in the lxml output
generation, which I managed to solve using git version, and now it
seems to work ok.
I'm always interested in ways people patch Spyne. If you think it's
worthy, please let me know.
I have just a simple question. I need to be able to generate
something like this:
<MyResponse>
<Items>
<ItemList ofType="b">
<Item>blabla</Item>
<Item>bleble</Item>
<Item>blibli</Item>
</ItemList>
<ItemList ofType="c">
<Item>clacla</Item>
<Item>clecle</Item>
<Item>clicli</Item>
</ItemList>
</Items>
</MyResponse>
from spyne import *
from spyne.util.xml import *
from lxml import etree
class ItemList(ComplexModel):
of_type = XmlAttribute(Unicode(sub_name='ofType'))
items = Unicode(max_occurs='unbounded', sub_name='Item')
# 2.12 will support this, which is imo nicer to look at:
items = Array(Unicode, wrapped=False, sub_name='Item')
class MyResponse(ComplexModel):
items = Array(ItemList, sub_name="Items")
print etree.tostring(get_object_as_xml(MyResponse(
items=[
ItemList(of_type="b", items=[
"blabla", "bleble", 'blibli',
]),
ItemList(of_type="c", items=[
"clacla", "clecle", 'clicli',
]),
]
)), pretty_print=True)
The sub_name additions here are to prevent you from breaking the PEP8
rules.
hth,
burak
---
This email has been checked for viruses by Avast antivirus software.
http://www.avast.com
_______________________________________________
Soap mailing list
[email protected]
https://mail.python.org/mailman/listinfo/soap