gSoap的 Serializing与Deserializing

gSoap能根据WSDL中定义的类型,自动生成针对这些类型的序列化/序列解析的代码,不用手工做任何的操作, 这对用C写程序来说真是天大的福音了;如果愿意,甚至可以把它用这作为C的Xml生成器和解析器怎么完成需要保存的数据的XML文件操作.

 

序列化的基本步骤如下:

其中soap.sendfd :

       gSoap可以使用一个已经打开的文件,socket等进行数据的收发
       soap.sendfd,soap.recvfd分别指定收和发的文件句柄.要操作完成后gSoap不会去关闭它们.

 

soap_put_ns1__TestResult( &soap, $result, "ns:element-name", "ns:type-name" ):

            发送已经序列化的TestResult结构的实例result, 第3,4参数中的ns为名称空间名,在gSoap生成代码
            时生成的.nsmap中定义,多数为ns1;

           [ namespace-prefix:] type-name1[ namespace-prefix:] type-name2 ,声明在soap消息中的元素名,

             通常我使用我使用接口的名字和类型名.

 

如果要序列化是对象是指针,应使用:

      soap_serialize_PointerTons1_TestResult()

      soap_put_PointerTons1__TestResult()

 

 

序列解析的步骤如下:

这里应该就比较容易理解了, 把上面的发的换成对应的收就行了. 如 soap_begin_recv()对应soap_begin_send(),

soap_get_ns1_TestResult()对应发送时的soap_put_ns1_TestResult();

 注意这里的"namespace-prefix:]element-name1" 和 "[namespace-prefix:]type-name1"一定要和发送方的一至.

 

PS: soap.sendfd/recvfd可以是任意的文件句柄哦, 如soap.recvfd = open( "file.xml" ,...);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值