进来的项目中涉及到了JAVA对象到XML格式数据转换问题,经过查找发现Castor是个好东西,于是便简单用了一下!在此我所要说的东西于我的项目关系不大,只是想说一下Castor关于JAVA对象到XML格式数据转换问题的简单应用。
Castor是ExoLab Group下面的一个开放源代码的项目,它主要目标是提供Java对象与XML 的绑定, Java到SQL的持久化等。在此只对Java对象与XML 的绑定作一个简单的应用!以说明其应用方法!
<o:p> </o:p>
一、具体应用<o:p></o:p>
<o:p> </o:p>
1.No Mapping 应用<o:p></o:p>
<o:p> </o:p>
测试bean TestBean.java<o:p></o:p>
package org.ndot;<o:p></o:p>
public class TestBean {<o:p></o:p>
private String user;<o:p></o:p>
private String text;<o:p></o:p>
private int num;<o:p></o:p>
public int getNum() {<o:p></o:p>
return num;<o:p></o:p>
}<o:p></o:p>
public void setNum(int num) {<o:p></o:p>
this.num = num;<o:p></o:p>
}<o:p></o:p>
public String getText() {<o:p></o:p>
return text;<o:p></o:p>
}<o:p></o:p>
public void setText(String text) {<o:p></o:p>
this.text = text;<o:p></o:p>
}<o:p></o:p>
public String getUser() {<o:p></o:p>
return user;<o:p></o:p>
}<o:p></o:p>
public void setUser(String user) {<o:p></o:p>
this.user = user;<o:p></o:p>
}<o:p></o:p>
public TestBean() {}<o:p></o:p>
}<o:p></o:p>
<o:p> </o:p>
测试类:MainTest.java<o:p></o:p>
package org.ndot;<o:p></o:p>
import java.io.File;<o:p></o:p>
import java.io.FileReader;<o:p></o:p>
import java.io.FileWriter;<o:p></o:p>
import org.exolab.castor.xml.Marshaller;<o:p></o:p>
import org.exolab.castor.xml.Unmarshaller;<o:p></o:p>
public class MainTest {<o:p></o:p>
public static void main(String[] args) { <o:p></o:p>
TestBean bean = new TestBean();<o:p></o:p>
bean.setUser("User");<o:p></o:p>
bean.setText("Test");<o:p></o:p>
try {<o:p></o:p>
File file = new File("test.xml");<o:p></o:p>
if (!file.exists()) {<o:p></o:p>
file.createNewFile();<o:p></o:p>
}<o:p></o:p>
FileWriter writer = new FileWriter(file);<o:p></o:p>
Marshaller.marshal(bean, writer);<o:p></o:p>
FileReader reader = new FileReader(file);<o:p></o:p>
TestBean read = (TestBean) Unmarshaller.<o:p></o:p>
unmarshal(TestBean.class, reader);<o:p></o:p>
System.out.println(read.getUser()+" : "+read.getText());<o:p></o:p>
} catch (Exception e) {<o:p></o:p>
e.printStackTrace(System.err);<o:p></o:p>
}<o:p></o:p>
}<o:p></o:p>
}<o:p></o:p>
控制台输出:User : Test<o:p></o:p>
生成test.xml文件:<o:p></o:p>
<?xml version="1.0" encoding="UTF-8"?><o:p></o:p>
<test-bean num="0"><o:p></o:p>
<user>User</user><o:p></o:p>
<text>Test</text><o:p></o:p>
</test-bean><o:p></o:p>
<o:p> </o:p>
注意:当bean属性是基本数据类型是作为跟元素的属性对待。而当bean属性是对象类型时按跟元素的子元素对待。<o:p></o:p>