| Sign In/My Account | View Cart |
| Article: |
Understanding JAXB: Java Binding Customization | |
| Subject: | Date problem... | |
| Date: | 2003-12-26 12:41:15 | |
| From: | anonymous2 | |
| My xsd defines a bunch of elements that hold dates. When I unmarshall an xml file, my dates are not correct. Any ideas??? | ||
Showing messages 1 through 6 of 6.
<jaxb:globalBindings>
<jaxb:javaType name="java.util.Date" xmlType="xs:date" printMethod="SimpleDateFormatter.print" parseMethod="SimpleDateFormatter.parse"/>
</jaxb:globalBindings>
public class SimpleDateFormatter
{
private static SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
public static Date parse(String date)throws ParseException
{
return dateFormat.parse(date);
}
public static String print(Date date)
{
String result = null;
if(date!=null)
{
result = dateFormat.format(date);
}
return result;
}
}
<xs:simpleType name="Date">
<xs:annotation>
<xs:appinfo>
<jaxb:javaType name="java.sql.Date" xmlType="xs:date" printMethod="valueOf" parseMethod="toString"/>
</xs:appinfo>
</xs:annotation>
<xs:restriction base="xs:date"/>
</xs:simpleType>
sayed
<jxb:javaType name="java.sql.Date" xmlType="xs:date" printMethod="toString" parseMethod="valueOf"/>
i tried to write on customized jaxb :
following is the content of my.xsd
<xsd:annotation>
<xsd:appinfo>
<jxb:globalBindings>
<jxb:javaType name="java.util.Date" xmlType="xsd:date" printMethod="SimpleDateFormatter.print" parseMethod="SimpleDateFormatter.parse"/>
</jxb:globalBindings>
</xsd:appinfo>
</xsd:annotation>
then i compile it using xjc commond.
MY XSD AND SimpleDateFormatter JAVA CLASS ARE IN THE SAME FOLDER....
i am getting the followng error...
parsing a schema...
compiling a schema...
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.apache.commons.launcher.ChildMain.run(ChildMain.java:269)
Caused by: java.lang.NoClassDefFoundError: SimpleDateFormatter
at com.sun.tools.xjc.grammar.xducer.UserTransducer.generateDeserializer(UserTransducer.java:165)
at com.sun.tools.xjc.grammar.xducer.TransducerDecorator.generateDeserializer(TransducerDecorator.java:56)
at com.sun.tools.xjc.grammar.xducer.WhitespaceTransducer.generateDeserializer(WhitespaceTransducer.java:67)
at com.sun.tools.xjc.generator.unmarshaller.PerClassGenerator.generateEatTextFunction(PerClassGenerator.java:422)
at com.sun.tools.xjc.generator.unmarshaller.PerClassGenerator.eatText(PerClassGenerator.java:384)
at com.sun.tools.xjc.generator.unmarshaller.TextMethodGenerator.performTransition(TextMethodGenerator.java:143)
at com.sun.tools.xjc.generator.unmarshaller.HandlerMethodGenerator.onState(HandlerMethodGenerator.java:184)
at com.sun.tools.xjc.generator.unmarshaller.HandlerMethodGenerator.generate(HandlerMethodGenerator.java:249)
at com.sun.tools.xjc.generator.unmarshaller.PerClassGenerator.generate(PerClassGenerator.java:192)
at com.sun.tools.xjc.generator.unmarshaller.UnmarshallerGenerator._generate(UnmarshallerGenerator.java:91)
at com.sun.tools.xjc.generator.unmarshaller.UnmarshallerGenerator.generate(UnmarshallerGenerator.java:55)
at com.sun.tools.xjc.Driver.generateCode(Driver.java:384)
at com.sun.tools.xjc.Driver.run(Driver.java:220)
at com.sun.tools.xjc.Driver._main(Driver.java:80)
at com.sun.tools.xjc.Driver.access$000(Driver.java:46)
at com.sun.tools.xjc.Driver$1.run(Driver.java:60)
Can u plz help me....
thanks
anup K