Home Code Java
Java: JAXB
Date type mapping example
<jaxws:bindings node="wsdl:definitions/wsdl:types/xsd:schema"
xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<jaxb:globalBindings>
<jaxb:javaType name="java.util.Date" xmlType="xsd:dateTime"/>
<jaxb:javaType name="java.util.Date" xmlType="xsd:date" />
</jaxb:globalBindings>
</jaxws:bindings>
Date type mapping example with custom converter
<javaType name="java.util.Date"
xmlType="xs:dateTime"
parseMethod="foo.org.Converter.parseDate"
printMethod="foo.org.Converter.printDateTime"/>
<javaType name="java.util.Date"
xmlType="xs:date"
parseMethod="foo.org.Converter.parseDate"
printMethod="foo.org.Converter.printDate"/>
Manual java.util.Date conversion to XMLGregorianCalendar
GregorianCalendar calendar = new GregorianCalendar();
calendar.setTime(date);
XMLGregorianCalendar xmlDate = DatatypeFactory.newInstance().newXMLGregorianCalendar(calendar);
Converting JAXB object to string
GeneratedClass obj = new GeneratedClass();
MessageFactory factory = MessageFactory.newInstance();
SOAPMessage message = factory.createMessage();
SOAPBody body = message.getSOAPBody();
JAXBContext context = JAXBContext.newInstance(GeneratedClass.class);
Marshaller marshaller = context.createMarshaller();
marshaller.marshal(obj, body);
message.saveChanges();
message.writeTo(System.out);