Axis序列化/反序列化器开发指南(2)

分类: J2EE   出处:iocblog整理  更新时间:2008-10-14   添加到收藏  

  jdomelementdeserializer
  
  用过sax解析xml的读者,对反序列化的实现比较容易理解,反序列化也采用了消息触发的机制,我们只需继承org.apache.axis.encoding.deserializerimpl类,并覆盖其中的onendelement方法:
  
  /**(来源www.iocblog.net)
  * 在元素结束触发反序列化的方法
  * @param namespace string 命名空间
  * @param localname string 本地名称
  * @param context deserializationcontext 反序列化上下文
  * @throws saxexception
  */
  public void onendelement(string namespace, string localname,
  deserializationcontext context) throws saxexception {
  
  try {
  //从反序列化上下文对象中获取原始的消息元素
  messageelement msgelem = context.getcurelement();
  if (msgelem != null) {
  messagecontext messagecontext = context.getmessagecontext();
  boolean currentelement = (boolean) messagecontext.getproperty(
  deserialize_current_element);
  
  //如果当前的消息元素本身需要反序列化
  if (currentelement != null && currentelement.booleanvalue()) {
  org.w3c.dom.element element = msgelem.getasdom();
  org.jdom.input.dombuilder db=new org.jdom.input.dombuilder();
  value=db.build(element);
  messagecontext.setproperty(deserialize_current_element,
  boolean.false);
  return;
  }
  
  //反序列化消息元素中的消息体
  java.util.arraylist children = msgelem.getchildren();
  if (children != null) {
  
  //取得消息体
  msgelem = (messageelement) children.get(0);
  if (msgelem != null) {
  org.w3c.dom.element ret = msgelem.getasdom();
  org.jdom.input.dombuilder db=new org.jdom.input.dombuilder();
  
  //用dombuilder将dom模型的element,转换成jdom模型的element
  value=db.

上一页 [1] [2]


Tag: Axis



文章整理:iocblog
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。