omelement和java对象之间的转换

omelement和java对象之间的转换

ID:11239220

大小:33.50 KB

页数:10页

时间:2018-07-10

omelement和java对象之间的转换_第1页
omelement和java对象之间的转换_第2页
omelement和java对象之间的转换_第3页
omelement和java对象之间的转换_第4页
omelement和java对象之间的转换_第5页
资源描述:

《omelement和java对象之间的转换》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、转自:http://warlaze.blog.sohu.com/58477971.htmlAXIOMAxis对象模型(AXIOM)是一个XML对象模型,设计用于提高XML处理期间的内存的使用率和性能,基于Pull解析。Pull解析方式,基于STAX(StreamingAPIforXML),Pull解析是最近处理XML的一种趋势,而SAX和DOM都是基于push的解析方式,也就是说解析控制在parser本身。Push解析方式很容易使用,但在处理XML文档时效率并不好,(因为要在内存中生成完成的对象模型)

2、。Pull解析方式颠倒了这种控制方式,增强了parser,只在用户需要的时候才进行处理。用户决定处理或者忽略parser生成的事件。AXIOM(也称为OM)可以控制解析过程,以提供延迟构建支持。延迟构建是指AXIOM不完全构建对象模型,模型的其余部分基于用户的需要构建。以下实例对此概念进行了说明:假定某个用户需要从XML输入流中获得一个人的元素值,AXIOM构建的对象模型将一直包含到元素结束的内容,而让其他内容保留在流中:清单1.对象模型的AXIOM部分构建

3、ersons>             DihInIHimahansi         Femal         Colomo,SriLanKa         <--对象模型仅在此之上建立-->                 DihInIHimahansi         Femal         

4、tion>Colomo,SriLanKa     这里的优势在于,尽可能仅使用能满足用户需求的内存。如果用户希望访问较大的文档中前面的数个字节或数千个字节,则延迟构建功能将改善应用程序的内存需求情况。可以从任何元素获得Stax事件,而不管是否完整构建了对象模型。在有些情况下,Axis2的此功能非常有用。例如,当Axis2作为中介传递时,如果仅需要读取SOAP消息的Header,AXIOM将防止其读取整个SOAP消息,使其具有很高的内存效率。另

5、一个例子是,当Web服务实现能够直接使用Stax事件时,由于采用了AXIOM,Web服务所需的内存非常小。此外,AXIOM内置了消息传输优化机制(MessageTransferOptimizationMechanism,MTOM)支持。对于AXIOM体系结构,可以通过实现AXIOM接口并将其插入到Axis2中来执行自己的对象模型。由于AXIOM最初是作为Axis2的对象模型而开发的,因此AXIOM提供了构建于基础AXIOMAPI之上的SOAP接口。这允许您使用envelop.getHeaders和en

6、velope.getBody之类的便利方法查看SOAP。AXIS2会将WebService方法中的参数或返回值中的自定义对象、数组、List等类型统一映射为OMElement类型,这就是我们需要编写OMElement于自定义类型之间的转换方法,下面给出了几个常用的方法:CASE1:自定义对象生成OMElement方法:Personman=newPerson();man.setName("Warlaze");man.setAge(25);man.setAddress("Beijing");man.set

7、Phonenum("15900000000");javax.xml.stream.XMLStreamReaderreader=BeanUtil.getPullParser(man);StreamWrapperparser=newStreamWrapper(reader);StAXOMBuilderstAXOMBuilder=OMXMLBuilderFactory.createStAXOMBuilder(OMAbstractory.getOMFactory(),parser);OMElementelem

8、ent=stAXOMBuilder.getDocumentElement();CASE2:list或Array类型生成OMElement方法:Listlist=newArrayList();list.add(man);OMElementomElement=BeanUtil.getOMElement(newQName("root"),list.toArray(),newQName("person"),false,null);

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。