`
q445862108
  • 浏览: 82995 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

Castor javaBean 与 xml 映射

    博客分类:
  • java
阅读更多
http://redwave.iteye.com/blog/163913
http://cache.baidu.com/c?m=9d78d513d99212ee1eb0d4690d6788355b16db3f69c3975521dbc90ed5264c40347bfefe62670704a4942f2647f2094bea876b32621e6ae8c5df883c82e8d06a74d47223706bdc074d8d&p=8e77d716d9c41bff57ea913a7f53&user=baidu&fm=sc&query=Castor+Mapping&qid=d267970c057eaf60&p1=1
Castor和数据库http://cache.baidu.com/c?m=9f65cb4a8c8507ed4fece763105392230e54f7386c88c7150885ce178e320c051038bef970625559939c3d7a50f35416b5ae2b38200356fdc39bcc198ce8d36e72c821296459db0144dc48fc8a00788137902bfedf1bf0ccf32593df8d809d16089606127af1e7fb5f1765cd7880132693d08e49654861c9fa4413e829003ee95557b737ee9046797081e1dc2c5bb52ec71713&p=c3769a4386cc42ad42fcce655c52&user=baidu&fm=sc&query=Castor+%B0%D1+Mapping+%B7%C5%B5%BD%CA%FD%BE%DD%BF%E2%D6%D0&qid=85c908a405941d5b&p1=1
Mapping:http://tech.ddvip.com/2009-01/1232391830106397_16.html

http://bluelzx.iteye.com/?page=7&show_full=true
类型转换http://wangrui.iteye.com/category/24492?show_full=true

package test;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Reader;
import java.io.Writer;
import java.util.Date;
import org.exolab.castor.xml.MarshalException;
import org.exolab.castor.xml.Marshaller;
import org.exolab.castor.xml.Unmarshaller;
import org.exolab.castor.xml.ValidationException;
public class Test {
	public static void main1(String[] args) {   
        David bean = new David();   
        bean.setAge(24);   
        bean.setName("David");   
        bean.setBorndate(new Date());   
        try {   
            // write it out as XML   
            File file = new File("D:/David.xml");   
            Writer writer = new FileWriter(file);   
            Marshaller.marshal(bean, writer);
            // now restore the value and list what we get   
            Reader reader = new FileReader(file);   
            David read = (David) Unmarshaller.unmarshal(David.class, reader);   
            System.out.println("David: " + read.getName() + read.getBorndate()   
                    + read.getAge());   
        } catch (IOException ex) {   
            ex.printStackTrace(System.err);   
        } catch (MarshalException ex) {   
            ex.printStackTrace(System.err);   
        } catch (ValidationException ex) {   
            ex.printStackTrace(System.err);   
        }   
    }
	
	public static void main(String[] args) throws MarshalException, ValidationException, IOException {
		QQ  qq = new QQ();
		qq.setId(1);
		qq.setName("QQ");
		qq.setStrName("BB");
		
		Marshaller.marshal(qq,new FileWriter("D:/QQ.xml"));
		Reader reader = new FileReader("D:/QQ.xml");
		QQ qq2 = (QQ) Unmarshaller.unmarshal(QQ.class,reader);
		System.out.println("QQ2:"+qq2.getId()+"--"+qq2.getName()+"---"+qq2.getStrName());
		reader.close();
	}

}




public static void main(String[] args) {
		QQ  qq = new QQ();
		qq.setId(1);
		qq.setName("123");
		qq.setStrName("abc");
		
		try {
			FileWriter writer =new FileWriter("D:/q.xml");
			/*Marshaller.marshal(qq,new DocumentHandler() {
				public void startElement(String name, AttributeList atts)
						throws SAXException {
					System.out.println("元素:"+name);
				}
				
				public void startDocument() throws SAXException {
					System.out.println("开始解析");
				}
				
				public void setDocumentLocator(Locator locator) {
					System.out.println("Locator");
				}
				
				public void processingInstruction(String target, String data)
						throws SAXException {
					System.out.println("processingInstrucion");
				}
				
				public void ignorableWhitespace(char[] ch, int start, int length)
						throws SAXException {
					System.out.println("ignorableWhitespace");
				}
				
				public void endElement(String name) throws SAXException {
					System.out.println("end"+name);
				}
				
				public void endDocument() throws SAXException {
					System.out.println("解析完毕");
				}
				
				public void characters(char[] ch, int start, int length)
						throws SAXException {
					System.out.println("---"+new String(ch,start,length));
				}
			});*/
			
			Writer writer2 = new StringWriter();
			Marshaller.marshal(qq,writer2);
			System.out.println(writer2.toString());
		} catch (Exception e) {
			e.printStackTrace();
		}
	}



总结:
对象必须是javaBean,用集合测试是不可以

//通过Map 文件
	public static void main(String[] args) {
//InputStream in = new ByteArrayInputStream(str.getBytes());
//	InputSource inputSource = new InputSource(in);
		QQ   qq = new QQ();
		qq.setId(1);
		qq.setName("123");
		try {
			Mapping mapping =new Mapping();
			mapping.loadMapping("D:/map.xml");
			Writer writer = new FileWriter("D:/qq.xml");
			Marshaller  marshaller =new Marshaller(writer);
			marshaller.setMapping(mapping);
			marshaller.marshal(qq);
			
			
			Reader reader  = new FileReader("D:/qq.xml");
			Unmarshaller unmarshaller =new Unmarshaller(mapping);
			QQ qq1=(QQ) unmarshaller.unmarshal(QQ.class,reader);
			System.out.println("id="+qq.getId()+"--"+qq.getName());

		} catch (Exception e) {
			e.printStackTrace();
		}
	}


<!DOCTYPE databases PUBLIC
"-//EXOLAB/Castor Mapping DTD Version 1.0//EN"
"http://castor.exolab.org/mapping.dtd">
<mapping>
	<description>Collection mapping example</description>	
<class name="test.QQ" auto-complete="true">
	<field name="id">
	<bind-xml name="id" node="attribute"/>
	</field>
	<field name="name">
		<bind-xml name="strName" node="attribute"/>
	</field>
</class>

<class name="test.QQ" auto-complete="true">
	<field name="id">
	<bind-xml name="id" node="attribute"/>
	</field>
	<field name="name">
		<bind-xml name="strName" node="attribute"/>
	</field>
</class>
</mapping> 


分享到:
评论

相关推荐

    javabean 转换 xml映射文件工具

    总的来说,JavaBean到XML映射文件工具是一个提高开发效率的实用工具,它简化了数据在Java对象和XML文档之间的转换,特别是在与Castor框架集成时。理解这个工具的工作原理和使用方法对于任何需要处理数据序列化的Java...

    javabean到XML的转换

    2. **生成映射文件**:Castor需要一个映射文件(mapping.xml),该文件定义了JavaBean和XML元素之间的关系。映射文件可以手动编写,也可以通过Castor的`generate`命令自动生成。例如,如果你有一个名为`Person`的...

    java持久化工具类:JavaBean与XML

    1. **对象-XML映射(OXM)**:通过Object-XML Mapping框架(如JAXB、Apache XMLBeans、Castor等),可以自动将JavaBean对象转换为XML文档,反之亦然。这种方式简化了数据持久化的代码编写,提高了开发效率。 2. **...

    xsd生成javaBean

    Castor库还提供了序列化和反序列化的功能,使得XML与Java对象之间的转换更加便捷。 以下是一段简单的示例代码,展示如何使用Castor将XML数据转化为JavaBean: ```java import org.exolab.castor.xml....

    castor入门说明

    为了使 Castor 能够正确地处理这个类,我们需要定义一个 XML 映射文件,指定 XML 标签与 Java 属性之间的映射关系。以下是一个示例: ```xml &lt;!DOCTYPE databases PUBLIC "-//EXOLAB/Castor Mapping DTD Version ...

    castor转换工具试用版

    用于javabean到xml映射文件的转化,可用于castor框架。 JDK6编译、运行。 双击运行时,需要等待一段时间。

    xml与javabean的相互转换

    3. 第三方库:除了标准的Java库,还有许多第三方库如Apache's Digester、Castor和XStream等,它们提供了更简洁的API来简化XML与JavaBean之间的转换。 4. XMLBeans库:压缩包中的"xmlbean"可能指的是Apache的...

    java对象与xml间的转换.docx

    Castor 提供了一个灵活的方式来定义 Java 对象与 XML 之间的映射关系,使得开发者们可以轻松地将 Java 对象转换为 XML,并在需要时将 XML 转换回 Java 对象。 Castor 的工作流程可以分为三步: 1. 首先,需要定义...

    XML_与_Java_技术_用_Castor_进行数据绑定.doc

    Castor框架支持自动生成XML文档的格式,只要Java对象遵循JavaBean规范,即包含公共getter和setter方法来访问和修改属性。这意味着开发者无需手动编写XML schema或配置文件,Castor就能根据对象的结构生成相应的XML...

    java对象与xml间的转换[参考].pdf

    Castor是一个开源项目,它提供了多种功能,包括但不限于对象关系映射(ORM)、XML绑定以及Web服务支持等。其中,XML绑定是其最为核心的功能之一,可以实现Java对象与XML文档之间的相互转换。 #### 二、Castor的工作...

    使用 XMLBeans 在 Apache Geronimo 中部署 SOA 应用程序

    Castor 虽然也能进行 XML 和 Java 对象之间的映射,但它还包含了 Java-SQL 绑定,并支持运行时自省。JAXB 是 Sun 提供的一种基础技术,专注于 XML 和 Java 类的绑定。然而,XMLBeans 由于其易用性、丰富的特性集以及...

    Java序列化技术的探讨.pdf

    这些框架采用了两种不同的方式:代码生成和对象到XML映射。 #### 代码生成方式 使用代码生成的框架有XMLBeans、JAXB、Zeus和J Bind等。这类框架首先要建立描述文档数据类型的XML方案,然后使用框架提供的工具,就...

    spring源码注释中文

    2. **Data Access/Integration(数据访问/集成)**:这个模块处理数据库访问,包括 JDBC、ORM(对象关系映射,如 Hibernate 和 JPA)、OXM(对象XML映射,如 JAXB 和 Castor)以及对 JMS(Java消息服务)的支持。...

    jqgrid and java

    - `castor-xml.jar`:这是一个XML绑定库,可以将Java对象序列化为XML,或者从XML反序列化为Java对象。 - `commons-collections.jar`:Apache Commons Collections提供了各种集合操作的扩展,如列表、映射和队列的...

    Struts1.1.6

    它们通常是JavaBean,与HTML表单字段相对应,用于在Action和JSP之间传递数据。 6. **Action Mapping**:在`struts-config.xml`中,Action Mapping定义了URL到Action的映射,以及Action的执行结果如何转发到特定的...

    BeanUtilTest:创建存储库以测试 BeanUtils

    在实际应用中,BeanUtils还经常与Apache的其他组件一起使用,比如Digester或Castor,它们可以帮助解析XML并自动创建和填充JavaBean。这样的组合使得在Java项目中处理数据交换和对象持久化变得更加简单。 总结来说,...

    Spring.3.x企业应用开发实战(完整版).part2

    第14章 使用OXM进行对象XML映射 14.1 认识XML解析技术 14.1.1 什么是XML 14.1.2 XML的处理技术 14.2 XML处理利器:XStream 14.2.1 XStream概述 14.2.2 快速入门 14.2.3 使用XStream别名 14.2.4 XStream转换器 14.2.5...

    Spring3.x企业应用开发实战(完整版) part1

    第14章 使用OXM进行对象XML映射 14.1 认识XML解析技术 14.1.1 什么是XML 14.1.2 XML的处理技术 14.2 XML处理利器:XStream 14.2.1 XStream概述 14.2.2 快速入门 14.2.3 使用XStream别名 14.2.4 XStream转换器 14.2.5...

Global site tag (gtag.js) - Google Analytics