`
lerous
  • 浏览: 66004 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Castor引擎

XML 
阅读更多
运用Castor引擎实现XML结构的字符串->JavaBean的映射

忘记补上这个了,我现在把我的实现贴出来:
我用的是castor-1.2-xml.jar这个包
测试代码大致如下
public void testCastor() {
		Mapping map = new Mapping();
		String strXml = "<?xml version='1.0' encoding='gb2312'?>" +
	 		"<item_info><item_name>上海迪士尼</item_name>" +
	 		"<district_id>1</district_id><barea>1235</barea>" +
	 		"<plan_cert_id>200801123456</plan_cert_id>" +
	 		"<plan_land_cert_id>200801987654</plan_land_cert_id>" +
	 		"<item_address>南京路</item_address>" +
	 		"<applicant_name>上海投资公司</applicant_name>" +
	 		"<address>南京路</address><post_num>200810256</post_num>" +
	 		"<contact>王先生</contact><contact_phone>110</contact_phone>" +
	 		"<material><name>身份证</name><type>原件</type><copys>1</copys></material>" +
	 		"<material><name>护照</name><type>复印件</type><copys>2</copys></material>" +
	 		"</item_info>";
		try {
			map.loadMapping(this.getClass().getClassLoader().getResource(
					"com/caseflow/domain/mapping.xml"));
			Unmarshaller unmar = new Unmarshaller(map);
			SurvForm survForm = (SurvForm) unmar.unmarshal(SurvForm.class,
					new StringReader(strXml));
			Marshaller marshaller = new Marshaller(new OutputStreamWriter(
					System.out));
			marshaller.setMapping(map);
			marshaller.marshal(survForm);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}


其中的SurvForm.java如下
package com.fangdi.caseflow.domain;

import java.io.Serializable;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Vector;

public class SurvForm implements Serializable {

	/**
	 * long : serialVersionUID
	 */
	private static final long serialVersionUID = -5171139648345487428L;

	private String case_apply_num;

	private String apply_num;

	private int district_id;

	private Vector items;
	
	private int year;

	private int caseno;
	
	private String plan_cert_id;
	
	private String plan_land_cert_id;

	private Date apply_date;

	private String applicant_name;
		
	private String address;

	private String post_num;

	private String contact;

	private String contact_phone;

	private String item_name;

	private String item_address;

	private int item_type;

	private double area;

	private Date overtime;

	private Date enddate;
	
	private String case_d_date;
	
	private String note;
	
	private String archive_info;
	
	private String archive_num;
	
	private String barea;

	private String instance_id;
	
	private Map AttriMAP = new HashMap();

	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
		AttriMAP.put("ADDRESS", address);
	}

	public String getApplicant_name() {
		return applicant_name;
	}

	public void setApplicant_name(String applicant_name) {
		this.applicant_name = applicant_name;
		AttriMAP.put("APPLICANT_NAME", applicant_name);
	}

	public Date getApply_date() {
		return apply_date;
	}

	public void setApply_date(Date apply_date) {
		this.apply_date = apply_date;
		AttriMAP.put("APPLY_DATE".toString(), apply_date);
	}

	public String getApply_num() {
		return apply_num;
	}

	public void setApply_num(String apply_num) {
		this.apply_num = apply_num;
		AttriMAP.put("APPLY_NUM", apply_num);
	}

	public String getArchive_info() {
		return archive_info;
	}

	public void setArchive_info(String archive_info) {
		this.archive_info = archive_info;
	}

	public String getArchive_num() {
		return archive_num;
	}

	public void setArchive_num(String archive_num) {
		this.archive_num = archive_num;
		AttriMAP.put("ARCHIVE_NUM", archive_num);
	}

	public double getArea() {
		return area;
	}

	public void setArea(double area) {
		this.area = area;
		AttriMAP.put("AREA", new Double(area));
	}

	public String getBarea() {
		return barea;
	}

	public void setBarea(String barea) {
		this.barea = barea;
		AttriMAP.put("BAREA", new Double(barea));
	}

	public String getCase_apply_num() {
		return case_apply_num;
	}

	public void setCase_apply_num(String case_apply_num) {
		this.case_apply_num = case_apply_num;
	}

	public String getCase_d_date() {
		return case_d_date;
	}

	public void setCase_d_date(String case_d_date) {
		this.case_d_date = case_d_date;
	}

	public int getCaseno() {
		return caseno;
	}

	public void setCaseno(int caseno) {
		this.caseno = caseno;
		AttriMAP.put("CASENO", new Integer(caseno));
	}

	public String getContact() {
		return contact;
	}

	public void setContact(String contact) {
		this.contact = contact;
		AttriMAP.put("CONTACT", contact);
	}

	public String getContact_phone() {
		return contact_phone;
	}

	public void setContact_phone(String contact_phone) {
		this.contact_phone = contact_phone;
		AttriMAP.put("CONTACT_PHONE", contact_phone);
	}

	public int getDistrict_id() {
		return district_id;
	}

	public void setDistrict_id(int district_id) {
		this.district_id = district_id;
		AttriMAP.put("DISTRICT_ID", new Integer(district_id));
	}

	public Date getEnddate() {
		return enddate;
	}

	public void setEnddate(Date enddate) {
		this.enddate = enddate;
	}

	public String getInstance_id() {
		return instance_id;
	}

	public void setInstance_id(String instance_id) {
		this.instance_id = instance_id;
	}

	public String getItem_address() {
		return item_address;
	}

	public void setItem_address(String item_address) {
		this.item_address = item_address;
		AttriMAP.put("ITEM_ADDRESS", item_address);
	}

	public String getItem_name() {
		return item_name;
	}

	public void setItem_name(String item_name) {
		this.item_name = item_name;
		AttriMAP.put("ITEM_NAME", item_name);
	}

	public int getItem_type() {
		return item_type;
	}

	public void setItem_type(int item_type) {
		this.item_type = item_type;
	}

	public String getNote() {
		return note;
	}

	public void setNote(String note) {
		this.note = note;
	}

	public Date getOvertime() {
		return overtime;
	}

	public void setOvertime(Date overtime) {
		this.overtime = overtime;
	}

	public String getPost_num() {
		return post_num;
	}

	public void setPost_num(String post_num) {
		this.post_num = post_num;
		AttriMAP.put("POST_NUM", post_num);
	}

	public int getYear() {
		return year;
	}

	public void setYear(int year) {
		this.year = year;
	}

	public Map getAttriMAP() {
		return AttriMAP;


}

public void setAttriMAP(Map attriMAP) {
AttriMAP = attriMAP;
}

public String getPlan_cert_id() {
return plan_cert_id;
}

public void setPlan_cert_id(String plan_cert_id) {
this.plan_cert_id = plan_cert_id;
AttriMAP.put("PLAN_CERT_ID", plan_cert_id);
}

public String getPlan_land_cert_id() {
return plan_land_cert_id;
}

public void setPlan_land_cert_id(String plan_land_cert_id) {
this.plan_land_cert_id = plan_land_cert_id;
AttriMAP.put("PLAN_LAND_CERT_ID", plan_land_cert_id);
}

public Vector getItems() {
return items;
}

public void setItems(Vector items) {
this.items = items;
}

}



mapping.xml文件如下
<?xml version="1.0"?>

<mapping>

        <class name="com.fangdi.caseflow.domain.SurvForm"> 
                <map-to xml="item_info"/>
                <field name="item_name" type="java.lang.String">  
                        <bind-xml name="item_name" node="attribute"/>
                </field>
                <field name="district_id" type="integer">  
                        <bind-xml name="district_id" node="attribute"/>
                </field>
                <field name="barea" type="java.lang.String">  
                        <bind-xml name="barea" node="attribute"/>
                </field>
                <field name="plan_cert_id" type="java.lang.String">  
                        <bind-xml name="plan_cert_id" node="attribute"/>
                </field>
                <field name="plan_land_cert_id" type="java.lang.String">  
                        <bind-xml name="plan_land_cert_id" node="attribute"/>
                </field>
                <field name="applicant_name" type="java.lang.String">  
                        <bind-xml name="applicant_name" node="attribute"/>
                </field>
                <field name="address" type="java.lang.String">  
                        <bind-xml name="address" node="attribute"/>
                </field>
                <field name="post_num" type="java.lang.String">  
                        <bind-xml name="post_num" node="attribute"/>
                </field>
                <field name="contact" type="java.lang.String">  
                        <bind-xml name="contact" node="attribute"/>
                </field>
                <field name="contact_phone" type="java.lang.String">  
                        <bind-xml name="contact_phone" node="attribute"/>
                </field>
                <field name="item_address" type="java.lang.String">
                        <bind-xml name="item_address" node= "attribute"/>
                </field>
                <field name="items" type="com.fangdi.caseflow.domain.Material"
                          collection="vector" node= "element">
                        <bind-xml name="material"/>
                </field>
        </class>
        
        <class name="com.fangdi.caseflow.domain.Material">
                <field name="name" type="java.lang.String"
                       direct="true">
                        <bind-xml name="name" node="element"/>
                </field>
                <field name="type" type="java.lang.String"
                       direct="true">
                        <bind-xml name="type" node="element"/>
                </field>
                <field name="copys" type="integer"
                       direct="true">
                        <bind-xml name="copys" node="element"/>
                </field>
        </class>
</mapping>



0
0
分享到:
评论

相关推荐

    Castor3D:多平台,多渲染器3D引擎。-开源

    Castor3D是用C ++编写的3D引擎。 它可以在Windows上运行,也可以在GNU / Linux上运行。 它使用OpenGL(带有GLSL)或Direct3D 9(带有HLSL)。 还支持Cg着色器语言。

    Castor : submit spider:在多个搜索引擎上提交网址-开源

    Castor是网站站长可以通过Web界面在多个搜索引擎或存储库上提交网址的php工具。

    Castor Web Builder-开源

    4. **模板引擎**:Castor采用了强大的模板引擎,使得设计人员和开发者可以分离界面和逻辑,提高工作效率。模板引擎支持自定义模板语言,让页面设计更直观,更易于维护。 5. **数据库集成**:Castor集成了常见的...

    Castor Library : Logic Paradigm for C++-开源

    2. **规则引擎(Rule Engine)**: Castor可能包含一个规则引擎,用于执行基于逻辑规则的决策流程。用户可以定义一系列规则,并让引擎根据当前数据状态自动执行合适的规则。 3. **模式匹配(Pattern Matching)**:...

    jobo爬虫程序

    5. **castor-0.9.2-xml.jar**:Castor是一个Java对象/关系映射框架,它允许将XML数据绑定到Java对象,可能用于Jobo爬虫中的数据存储和序列化。 6. **jsse.jar**:Java Secure Socket Extension,提供了安全套接字层...

    axis2 高端教程

    5. 数据绑定:Axis2支持多种数据绑定框架,如Axiom(Axis2 Object Model)、JAXB、Castor等,用于XML到Java对象和反之的转换。 二、Axis2快速入门 1. 安装与配置:Axis2的安装通常涉及下载发行版,解压后配置环境...

    java-neuralnet-libs-0.2.tar.gz_neural network_neural network jav

    2. **castor-xml.jar**:Castor是一个Java对象到XML绑定框架,可以将Java对象直接转换为XML文档,反之亦然。在神经网络中,这可能是用来序列化和反序列化网络配置或训练数据。 3. **bsh.jar**:BeanShell是一个轻量...

    CastorGUI:用于将GUI游戏显示为画布HTML CSS之上的一层的库

    该库是为游戏编辑器创建的,并为3d游戏引擎创建了扩展。 特征: 创建纹理 建立文字 创建可拖动的窗口(标题和按钮关闭) 创建对话框(关闭按钮) 创建面板(不关闭按钮的简单对话框) 创建按钮 创建滑块 创建...

    soap wsdl webService

    Axis包括一个SOAP引擎,用于处理SOAP消息,以及一个WSDL处理器,用于生成客户端和服务端代码。 3. `JimiProClasses.jar`:可能是一个图像处理库,与Web服务直接关联不大,但可能用于处理Web服务中的图形数据。 4. ...

    spring 3 依赖包_part3

    9. **org.beanshell**:BeanShell是一个轻量级、交互式的Java脚本引擎,允许在运行时动态修改Java对象和类。在Spring应用中,BeanShell可以用于原型设计、调试或者配置热更新,提高开发效率。 10. **org.aspectj**...

    INACTIVE: Java Web Application Framework-开源

    3. **视图层集成**:除了支持传统的JSP视图外,JWAF可能还集成了现代的模板引擎,如FreeMarker或Thymeleaf,使得页面渲染更加简洁高效。 4. **持久层集成**:JWAF可能增强了对ORM框架的集成,不仅限于Castor,也...

    axis包含日志jar

    Axis2是Apache软件基金会开发的一个Web服务引擎,它主要用于处理SOAP消息,实现Web服务的发布、消费和集成。在 Axis2 中,日志功能对于调试、问题排查和系统监控至关重要。日志JAR文件通常包含了像Log4j、SLF4J或...

    spring ioc入门

    - **Spring Context Support**:集成第三方库,如缓存、邮件、调度、模板引擎等。 - **Spring Expression Language (SpEL)**:提供强大的表达式语言,用于运行时查询和操作对象图。 此外,Spring 还包含数据访问/...

    Spring5中文文档

    视图技术章节介绍了Thymeleaf、FreeMarker、JSP & JSTL、Script模板和XML编组视图等多种模板引擎的使用方法。 远程服务和Web服务章节详细描述了使用Spring框架暴露和调用远程服务的技术,例如RMI、Hessian、HTTP...

    spring+axis2_xfire整合的webservice

    - Axis2是Apache软件基金会开发的下一代SOAP引擎,它是Axis1.x的升级版,但采用了全新的架构,旨在提高模块化、灵活性和性能。 - 主要特点: - 使用AXIOM(AXIs Object Model)作为核心XML处理模型,允许高效地...

    axis2jar包下载

    Axis2是基于Axis1的下一代Web服务引擎,它在设计上进行了重大的改进,以提高性能和可扩展性。Axis2提供了模块化架构,允许开发者仅引入所需的组件,从而降低应用程序的体积。此外,Axis2支持多种协议和编码,如SOAP...

    SpringMVC jar包

    - `spring-oxm.jar`: 对象/XML映射支持,如JAXB、Castor、XStream等。 6. **使用Spring MVC的流程** - 用户发起HTTP请求到达前端控制器DispatcherServlet。 - DispatcherServlet根据请求信息,如URL、HTTP方法,...

    marshalsec.pdf

    - 基于bean属性的序列化器包括:SnakeYAML、jYAML、YamlBeans、Apache Flex BlazeDS、Red5 IOAMF、Jackson、Castor和JavaXMLDecoder。 - 基于字段的序列化器包括:Java Serialization、Kryo、Hessian/Burlap、json-...

Global site tag (gtag.js) - Google Analytics