JAXB Marshaller no tiene elementos cuyo valor es nulo

Cuando marcho un objeto java utilizando JAXB Marshaller, el contador no crea elementos vacíos para archivos nulos en el objeto java. Por ejemplo, tengo un siguiente objeto java:

public class PersonTraining {

    @XmlElement(name = "Val1", required = true)
    protected BigDecimal val1;
    @XmlElement(name = "Val2", required = true, nillable = true)
    protected BigDecimal val2;
    @XmlElement(name = "Val3", required = true, nillable = true)
    @XmlSchemaType(name = "dateTime")
    protected XMLGregorianCalendar val3;
}

Cuando tomo una instancia de este objeto, y formo parte de un XML, obtengo lo siguiente (Esto es porque no configuré el valor para Val2):

<PersonTraining>
      <Val1>1</Val1>
       <Val3>2010-01-01T00:00:00.0-05:00</Val3>
 </PersonTraining>

Sin embargo, esperaba el siguiente resultado de la operación de cálculo (Infact, también necesito específicamente un elemento para que el XML pueda validarse con el XSD)

<PersonTraining>
      <Val1>1</Val1>
      <Val2></Val2>
       <Val3>2010-01-01T00:00:00.0-05:00</Val3>
 </PersonTraining>

Déjeme saber qué opción necesitaría establecer para que el valor nulo en los atributos del objeto TAMBIÉN se pueda calcular y devolver como elementos vacíos / nulos.

Aquí está el código de clasificación:

StringWriter sw = new StringWriter();
JAXBContext jc = JAXBContext.newInstance("person_training");   
Marshaller m = jc.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
m.marshal(ptl, sw);

Respuestas a la pregunta(1)

Su respuesta a la pregunta