Como gerar a tag final para o elemento vazio em XML usando JAXB
Estou gerando XML usando JAXB. Mas o JAXB está gerando um Tag vazio, fechando-se. Mas meu cliente deseja separar a tag vazia. Eu sei que ambos são iguais, mas ele não concorda comigo. por favor, qualquer um sugere a solução. Obrigado.
Código de amostra:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"currencyCode",
"discountValue",
"setPrice",
"spendLowerThreshold",
"spendUpperThreshold",
"discountApportionmentPercent",
"discountApportionmentValue"
})
@XmlRootElement(name = "countryData")
public class CountryData {
protected String currencyCode;
protected String discountValue = "";
protected String setPrice = "";
protected String spendLowerThreshold = "";
protected String spendUpperThreshold = "";
protected String discountApportionmentPercent = "";
protected String discountApportionmentValue = "";
// Setters and Gettres
}
Saída real:
<currencyCode>GBP</currencyCode>
<discountValue/>
<setPrice/>
<spendLowerThreshold/>
<spendUpperThreshold/>
<discountApportionmentPercent>0.0</discountApportionmentPercent>
<discountApportionmentValue/>
Saída esperada:
<currencyCode>GBP</currencyCode>
<discountValue></discountValue>
<setPrice></setPrice>
<spendLowerThreshold></spendLowerThreshold>
<spendUpperThreshold></spendUpperThreshold>
<discountApportionmentPercent>0.0</discountApportionmentPercent>
<discountApportionmentValue></discountApportionmentValue>
Código para Marshalling:
try {
Marshaller marshaller = JAXBContext.newInstance(CountryData.class).createMarshaller();
ByteArrayOutputStream os = new ByteArrayOutputStream();
marshaller.marshal(countryData , os);
log.debug("The PPV request raw XML -> " + os.toString());
} catch (JAXBException e) {
// nothing to do
}
Estou usando o JDK 6.0