src/main/java/com/wpollock/jaxbdemo/DoubleAdapter.java

package com.wpollock.jaxbdemo;

import javax.xml.bind.annotation.adapters.XmlAdapter;
import java.math.BigDecimal;

/**
 * JAXB does native formatting of values.
 * To have nicely formatted dates and numbers requires a XMLAdapter class
 * be used.  This class formats BigDecimals with two decimal places.
 */
public class DoubleAdapter extends XmlAdapter<String, BigDecimal> {

    public BigDecimal unmarshal(final String xml) throws Exception {
        return new BigDecimal(xml);
    }

    public String marshal(final BigDecimal num) throws Exception {
        return String.format("%.2f", num);
    }
}