JAXB学习二 (类型绑定)
上面一节简单介绍了怎么入门JAXB,这节介绍怎么自定义绑定类型。
?
JAXB会有一些默认的类型匹配,以下是一张匹配表:
?
<bindings xmlns="http://java.sun.com/xml/ns/jaxb" version="2.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <globalBindings> <javaType name="java.util.Calendar" xmlType="xs:date" parseMethod="javax.xml.bind.DatatypeConverter.parseDate" printMethod="javax.xml.bind.DatatypeConverter.printDate" /> </globalBindings> </bindings>?<bindings xmlns="http://java.sun.com/xml/ns/jaxb" version="2.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <globalBindings> <javaType name="java.util.Date" xmlType="xs:date" parseMethod="com.liulutu.jaxb.DateAadpter.parseDate" printMethod="com.liulutu.jaxb.DateAdapter.printDate" /> </globalBindings></binding>?
这里你需要行在src下定义一个com.liulutu.jaxb.DateAadpter类,并提供printDate和parseDate方法。如下:
package com.liulutu.jaxb;
public class DateAdapter { public static Date parseDate(String s) { return DatatypeConverter.parseDate(s).getTime(); } public static String printDate(Date dt) { Calendar cal = new GregorianCalendar(); cal.setTime(dt); return DatatypeConverter.printDate(cal); } }
?
xjc.bat students.xsd -d src -p com.liulutu.student.model -b bindings.xml