É possível ignorar uma classe wrapper durante o empacotamento de JAXB
Eu estou tentando obter JAXB para ignorar uma classe wrapper durante o processo de Mashalling, faz sentido ter essa classe de wrapper no código, como manter todas as informações relacionadas em conjunto, no entanto eu preciso para se livrar dele durante o processo de empacotamento. O seguinte é o código relevante.
@XmlType(name = "root")
@XmlRootElement(name = "root")
public class Root {
@XmlElementRef
private List<Resource> resources = new ArrayList<>();
public void addResource(Resource resource) {
resources.add(resource);
}
}
@XmlRootElement(name = "", namespace = "")
@XmlAccessorType(XmlAccessType.NONE)
public class Resource {
@XmlElementRef
private Element element;
@XmlElementRef
private FieldType fieldType;
@XmlElementRef
private ListType listType;
}
Raiz é o objeto principal e Resource é o objeto wrapper que eu gostaria que não fosse criado por um nó. Eu ainda quero o elemento, FieldType e ListType dentro do recurso a ser processado no entanto.
Isto é o que eu tenho atualmente:
<root>
<>
<element name="resource1"/>
<fieldType name="resource1--type">
</fieldType>
<listType name="resource--list">
</listType>
</>
<>
<element name="resource2"/>
<fieldType name="resource2--type">
</fieldType>
<listType name="resource2--list">
</listType>
</>
</root>
O que eu gostaria de alcançar é o seguinte:
<root>
<element name="resource1"/>
<fieldType name="resource1--type">
</fieldType>
<listType name="resource--list">
</listType>
<element name="resource2"/>
<fieldType name="resource2--type">
</fieldType>
<listType name="resource2--list">
</listType>
</root>
Não sei se é possível, mas qualquer ajuda seria apreciada.
Obrigado.