CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  Web Services / XML

castor怎么处理集合

楼主haimingway(hemingway)2006-03-17 09:56:53 在 Java / Web Services / XML 提问

比如:  
  <EML_ID_LIST>  
      <EML_ID>479291230600000028</EML_ID>  
  </EML_ID_LIST>  
  <EML_ID_LIST>  
      <EML_ID>479291230600000029</EML_ID>  
  </EML_ID_LIST> 问题点数:100、回复次数:6Top

1 楼haimingway(hemingway)回复于 2006-03-17 11:34:48 得分 0

怎么都没人啊。。。。唉。。。Top

2 楼echomyf(ECHO)回复于 2006-03-17 16:55:58 得分 100

<!DOCTYPE   databases   PUBLIC    
      "-//EXOLAB/Castor   Mapping   DTD   Version   1.0//EN"  
      "http://castor.exolab.org/mapping.dtd">  
   
  <mapping>  
          <class   name="com.lczmsoft.bpe.busi.RoleBox"   auto-complete="false">  
                  <field   name="EML_ID_LIST"   type="com.a.Role"    
                        collection="collection"/>  
          </class>  
   
          <class   name   =   "com.a.BpeRole">  
                  <field   name="EML_ID"/>  
          </class>  
  </mapping>  
   
  这是一个mapping文件  
  不知道你的类结构,所以只能写一个框架  
  Top

3 楼haimingway(hemingway)回复于 2006-03-20 10:21:08 得分 0

你这样不对吧?Top

4 楼echomyf(ECHO)回复于 2006-03-20 13:36:46 得分 0

我说过了,我不知道你那边的类结构,我是拿我以前写的mapping做一个例子.你肯定不能拿这个文件去用的.  
  castor的文档上有很详细的说明的.  
   
  Top

5 楼echomyf(ECHO)回复于 2006-03-20 16:18:04 得分 0

<!DOCTYPE   databases   PUBLIC    
      "-//EXOLAB/Castor   Mapping   DTD   Version   1.0//EN"  
      "http://castor.exolab.org/mapping.dtd">  
   
  <mapping>  
          <class   name="demo.Workers"   auto-complete="false">  
          <map-to   xml="Workers"/>  
                  <field   name="employees"   type="demo.Employee"    
                        collection="collection">  
                        <bind-xml   name="EML_ID_LIST"/>  
                  </field>  
          </class>  
           
          <class   name   =   "demo.Employee">  
              <field   name="empId">  
                  <bind-xml   name="EML_ID"   node="element"/>  
              </field>  
          </class>  
  </mapping>  
   
   
  package   demo;  
   
  import   java.util.ArrayList;  
  import   java.util.List;  
   
  public   class   Workers   {  
  private   List   employees   =new   ArrayList();  
   
  public   void   setEmployees(List   empls)   {  
  this.employees   =   empls;  
  }  
   
  public   List   getEmployees()   {  
  return   employees;  
  }  
   
  }  
   
  package   demo;  
   
  public   class   Employee   {  
  private   String   empId;  
   
  public   void   setEmpId(String   empId)   {  
  this.empId   =   empId;  
  }  
   
  public   String   getEmpId()   {  
  return   empId;  
  }  
  }  
   
  下边是解析方法:  
   
  Workers   emp   =   null;  
  Mapping   map   =   new   Mapping();  
  try   {  
  map.loadMapping(this.getClass().getResource(  
  "/config/Role.mapping.xml").getFile());  
  Reader   reader   =   new   FileReader(new   File(this.getClass()  
  .getResource("/config/Role.define.xml").getFile()));  
  Unmarshaller   unmarshaller;  
  unmarshaller   =   new   Unmarshaller(map);  
  emp   =   (Workers)   unmarshaller.unmarshal(reader);  
  if   (emp   !=   null)   {  
  List   list   =   emp.getEmployees();  
  for   (int   i   =   0;   i   <   list.size();   i++)   {  
  log.debug(list.get(i));  
  }  
  }  
  }   catch   (IOException   e)   {  
  //   TODO   Auto-generated   catch   block  
  e.printStackTrace();  
  }   catch   (MappingException   e)   {  
  //   TODO   Auto-generated   catch   block  
  e.printStackTrace();  
  }   catch   (MarshalException   e)   {  
  //   TODO   Auto-generated   catch   block  
  e.printStackTrace();  
  }   catch   (ValidationException   e)   {  
  //   TODO   Auto-generated   catch   block  
  e.printStackTrace();  
  }  
   
  Top

6 楼echomyf(ECHO)回复于 2006-03-20 16:24:09 得分 0

对了  
  你的原来的xml数据要写成下边的样式  
   
  <?xml   version="1.0"   encoding="gb2312"?>  
  <Workers>  
  <EML_ID_LIST>  
      <EML_ID>479291230600000028</EML_ID>  
  </EML_ID_LIST>  
  <EML_ID_LIST>  
      <EML_ID>479291230600000029</EML_ID>  
  </EML_ID_LIST>  
  </Workers>Top

相关问题

  • 怎么创建集合类?
  • 如何将('a','b','c')这样的集合处理成结果集?
  • 集合元素怎么加入的?
  • 怎么取DataView中的列集合?
  • 怎么定义集合和枚举?
  • 请问在SQL里面怎么判断一个集合是不是另一个集合的子集合?
  • 请各位高手指教,怎么用好ADO的Errors集合和Error对象,特别在ACITVEX DLL中处理错误信息中,在实践中怎么应用呢?
  • ora-12571怎么处理
  • 怎么分别将一个数组转化成一个list集合和hashmap集合呢???
  • 怎么得到MDI窗口的子窗口集合?????

关键词

  • unmarshaller
  • empid
  • workers
  • emp
  • employee
  • map
  • reader
  • list

得分解答快速导航

  • 帖主:haimingway
  • echomyf

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo