由于项目需要和其他公司合作开发,所以需要XML来作为传输数据格式。
感觉DOM SAX JAXP 用起来过于复杂,就选择了Castor这个框架,在使用过程中碰到了一些问题记录一下。
1: Castor 和 Spring 整合
<bean id="resolver" class="org.castor.spring.xml.CastorResolverFactoryBean">
<property name="mappingLocations">
<list>
<value>mapping.xml</value>
</list>
</property>
</bean>
定义从xml 组装成 java 对象 bean
<bean id="unmarshaller" class="org.castor.spring.xml.CastorUnmarshallerFactoryBean">
<property name="resolver">
<ref local="resolver" />
</property>
</bean>
定义从java 对象 组装成 xml bean
<bean id="marshaller" class="org.castor.spring.xml.CastorMarshallerFactoryBean">
<property name="resolver">
<ref local="resolver" />
</property>
</bean>
代码调用
DATA data=new DATA();
data.setGatewayId(1L);
data.setNodeId(1L);
data.setTime(new Date());
data.setFRQ(2.00f);
StringWriter writer=new StringWriter();
marshaller.setWriter(writer);
marshaller.marshal(data) ;
2: 有一些特殊的字段比如时间格式 需要自定义 fileHandler
public class TimeHandlerImpl extends GeneralizedFieldHandler {
public final DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@Override
public Object convertUponGet(Object value) {
if(value==null)
return null;
Date date = (Date) value;
return format.format(date);
}
@Override
public Object convertUponSet(Object value) {
if(value==null)
return null;
String dateStr = (String) value;
try {
return format.parse(dateStr);
}
catch (ParseException e) {
throw new RuntimeException(e);
}
}
@Override
public Class getFieldType() {
return Date.class;
}
}
mapping.xml 当中定义时间格式字段
<field name="time" type="string" handler="xxxx.TimeHandlerImpl">
<bind-xml name="time" node="element" />
</field>
参考:1 http://www.castor.org/1.2/xml-mapping.html#Sample-1:-Defining-a-custom-field-handler
2 http://www.ibm.com/developerworks/cn/xml/x-bindcastor/
分享到:
相关推荐
提供处理XML、Directory、XADirectory的类库,提供从XML到JAVA类的转换机制。 Castor(http://castor.exolab.org/)是一种将Java对象和XML自动绑定的开源软件。它可以在Java对象、XML文本、SQL数据表以及LDAP目录...
Castor实现XML与Java的互转,是目前非常流行的WSDL中常用的方法。有兴趣的可以下载看看
Castor的使用,如何将java object转换为xml与将xml转换为java object
对于主要关心文档数据内容的...然后,展示如何利用Java数据绑定的开放源代码Castor框架来处理日益复杂的文档。如果您的应用程序更多的把XML作为数据而不是文档,您就会愿意了解这种处理XML和Java技术的简单有效的方法。
castor解析xml与xsd校验xml
要实现的是O/R映射功能。它主要API和数据接口为:JDO-like, SQL, OQL, JDBC, LDAP, XML, DSML。它支持分布式目录事务处理和时间;提供处理XML、Directory、XADirectory的类库,提供从XML到JAVA类的转换机制。
本文系原创,如需转载请注明作者...本文详细介绍了Java XML绑定技术,并重点说明了如果使用JAXB来简化XML文档的操作。如果你的Java项目中需要使用XML(作为配置文件或数据库),不妨试一下JAXB,你一定会有惊喜的发现。
castor Java与xml互转示例---代码 castor xml解析
根据xml报文,一键自动生成castor插件maping文件和java对象,方便接口对接以及测试工具包测试说明文档
xml报文和java对象互相转换 相关jar包和测试代码,可以与castor插件java对象和XML自动绑定maping文件生成和java对象一键生成工具1.2(https://download.csdn.net/download/kemoing/10864595)完美配合使用
castor解析xml
提供处理XML、Directory、XADirectory的类库,提供从XML到JAVA类的转换机制。Castor(http://castor.exolab..org/)是一种将Java对象和XML自动绑定的开源软件。它可以在Java对象、XML文本、SQL数据表以及LDAP目录...
Castor 项目采用 BSD 类型的证书,因此可在任何类型的应用程序(包括完整版权的项目)中使用。 Castor 实际上仅仅有 XML 数据绑定,它还支持 SQL 和 LDAP 绑定
用于javabean到xml映射文件的转化,可用于castor框架。 JDK6编译、运行。 双击运行时,需要等待一段时间。
根据xml报文,一键自动生成castor插件maping文件和java对象
castor 开发指南 xml xml转换 序列化 用Castor来完成Java对象到xml的相互转换。
xml解析工具类,包含了一下的类: org.castor.util.IdentityMap org.castor.util.IdentitySet org.exolab.javasource.JEnum org.exolab.javasource.JType org.exolab.castor.util.List org.exolab.javasource.Header...
castor1.4 xsd生成java
castor-0.9.5.3-xml.jar,java和xml互相转换所使用的JAR
javabean转换xml映射文件工具,可用于castor框架。JDK6编译、运行。