Advertisement
Guest User

JAXB dateTime xml marshal blank

a guest
Sep 16th, 2016
302
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.50 KB | None | 0 0
  1. Main.java
  2.  
  3.  
  4. import java.io.StringWriter;
  5. import java.text.ParseException;
  6. import java.text.SimpleDateFormat;
  7. import java.util.GregorianCalendar;
  8.  
  9. import javax.xml.bind.JAXBContext;
  10. import javax.xml.bind.JAXBException;
  11. import javax.xml.bind.Marshaller;
  12. import javax.xml.datatype.DatatypeConfigurationException;
  13. import javax.xml.datatype.DatatypeConstants;
  14. import javax.xml.datatype.DatatypeFactory;
  15. import javax.xml.datatype.XMLGregorianCalendar;
  16.  
  17. public class Main {
  18.     public static void main(String[] args){
  19.         TheObject theObject = new TheObject();
  20.         try {
  21.             XMLGregorianCalendar dob = convertStringToXmlGregorian("2016-09-16");
  22.             //should output this:
  23.             /*
  24.                 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  25.                 <TheObject>
  26.                     <DOB>2016-09-16</DOB>
  27.                 </TheObject>
  28.             */
  29. System.out.println(marshallTheObject(theObject));
  30.         } catch (DatatypeConfigurationException e) {
  31.             // TODO Auto-generated catch block
  32.             e.printStackTrace();
  33.         } catch (JAXBException e) {
  34.             // TODO Auto-generated catch block
  35.             e.printStackTrace();
  36.         }
  37.     }
  38.     private static String marshallTheObject(TheObject theObject) throws JAXBException{
  39.         JAXBContext jaxbContext = JAXBContext.newInstance(TheObject.class);
  40.         Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
  41.         jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
  42.         StringWriter sw = new StringWriter();
  43.         jaxbMarshaller.marshal(theObject, sw);
  44.         String output = sw.toString();
  45.         return output;
  46.     }
  47.     private static XMLGregorianCalendar convertStringToXmlGregorian(String dateString)     throws DatatypeConfigurationException
  48.     {
  49.         try {
  50.                 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");    
  51.                 java.util.Date date = sdf.parse(dateString);
  52.                 GregorianCalendar gc = (GregorianCalendar) GregorianCalendar.getInstance();
  53.                 gc.setTime(date);
  54.                 XMLGregorianCalendar calendar = DatatypeFactory.newInstance().newXMLGregorianCalendar(gc);
  55.                 calendar.setTimezone(DatatypeConstants.FIELD_UNDEFINED);
  56.                 calendar.setTime(DatatypeConstants.FIELD_UNDEFINED, DatatypeConstants.FIELD_UNDEFINED, DatatypeConstants.FIELD_UNDEFINED);
  57.                 return calendar;
  58.             } catch (ParseException e) {
  59.                 e.printStackTrace();
  60.                 return null;
  61.             }
  62.     }
  63. }
  64.  
  65.  
  66.  
  67.  
  68. TheObject.java
  69.  
  70.  
  71. import javax.xml.bind.annotation.XmlAccessType;
  72. import javax.xml.bind.annotation.XmlAccessorType;
  73. import javax.xml.bind.annotation.XmlElement;
  74. import javax.xml.bind.annotation.XmlRootElement;
  75. import javax.xml.bind.annotation.XmlSchemaType;
  76. import javax.xml.bind.annotation.XmlType;
  77. import javax.xml.datatype.XMLGregorianCalendar;
  78.  
  79.  
  80.  
  81. @XmlAccessorType(XmlAccessType.FIELD)
  82. @XmlType(name = "TheObject", propOrder = {
  83.    "dob"
  84. })
  85. @XmlRootElement(name = "TheObject")
  86. public class TheObject {
  87.  
  88.    
  89.     @XmlElement(name = "DOB")
  90.     @XmlSchemaType(name = "dateTime")
  91.     protected XMLGregorianCalendar dob;
  92.     /**
  93.      * Gets the value of the dob property.
  94.      *
  95.      * @return
  96.      *     possible object is
  97.      *     {@link XMLGregorianCalendar }
  98.      *    
  99.      */
  100.     public XMLGregorianCalendar getDOB() {
  101.         return dob;
  102.     }
  103.  
  104.     /**
  105.      * Sets the value of the dob property.
  106.      *
  107.      * @param value
  108.      *     allowed object is
  109.      *     {@link XMLGregorianCalendar }
  110.      *    
  111.      */
  112.     public void setDOB(XMLGregorianCalendar value) {
  113.         this.dob = value;
  114.     }
  115.  
  116.    
  117. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement