soaplib之model?

来源:互联网 发布:nsp网络 编辑:程序博客网 时间:2024/05/29 11:32

#小船 2014-12-21整理

#Primitives


from soaplib.core.model.primitive import String


from lxml import etree


parent = etree.Element("parent")
print parent
String.to_parent_element("abcd","tns",parent)
string_element = parent.getchildren()[0]
print etree.tostring(string_element)
print String.from_xml(string_element)
print String.get_type_name()
#print String.get_type_name_ns() 


后续研究:






#Arrays
from soaplib.core.model.clazz import Array
from soaplib.core.model.primitive import String
from lxml import etree


parent = etree.Element("parent")
array_serializer = Array(String)
array_serializer.to_parent_element(['a','b','c','d'],'tns',parent)
element=parent[0]
print etree.tostring(element)
print array_serializer.from_xml(element)




class:

# -*- coding: UTF-8 -*-


#class
from soaplib.core.model.primitive import String, Integer
from soaplib.core.model.clazz import ClassModel, Array
from lxml import etree


class Permission(ClassModel):
    ___namespace__ = "permission"
    application = String
    feature = String
    
class User(ClassModel):
    __namespace__ = 'user'
    userid = Integer
    username = String
    lastname = String
    lastname = String
    permissions = Array(Permission)
    
u = User()
u.username = "bill"
u.permissions = []
p = Permission()
p.application = 'email'
p.feature = 'send'
u.permissions.append(p)
parent = etree.Element('parent')
User.to_parent_element(u,'tns',parent)
element = parent[0]
print etree.tostring(element)
print User.from_xml(element).username



结果:

<ns0:User xmlns:ns0="tns"><ns1:username xmlns:ns1="user">bill</ns1:username><ns2:permissions xmlns:ns2="user"><ns3:Permission xmlns:ns3="None"><ns3:feature>send</ns3:feature><ns3:application>email</ns3:application></ns3:Permission></ns2:permissions></ns0:User>
bill



#Attachment
from soaplib.core.model.binary import Attachment
from lxml import etree
a = Attachment(data='my binary data')
parent = etree.Element('parent')
Attachment.to_parent_element(a,'tns',parent)
element = parent[0]
print etree.tostring(element)
print Attachment.from_xml(element)
print Attachment.from_xml(element).data
# a2 = Attachment(fileName='test.data')


<ns0:retval xmlns:ns0="tns">bXkgYmluYXJ5IGRhdGE=
</ns0:retval>
<soaplib.core.model.binary.Attachment object at 0x01ECFFB0>
my binary data

0 0
原创粉丝点击