Czy jest możliwe zignorowanie klasy wrappera podczas zestawiania JAXB

Próbuję zmusić JAXB do zignorowania klasy opakowującej podczas procesu Mashallingu, warto mieć tę klasę wrappera w kodzie, ponieważ przechowuje wszystkie powiązane informacje razem, jednak muszę się go pozbyć podczas procesu marshaling. Poniżej znajduje się odpowiedni kod.

@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;
}

Głównym obiektem jest Root, a Resource to obiekt opakowujący, dla którego nie chcę utworzyć węzła. Nadal jednak chcę, aby Element, FieldType i ListType w obrębie zasobu były renderowane.

Właśnie to mam obecnie:

<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>

To, co chciałbym osiągnąć, to:

<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>

Nie wiem, czy to możliwe, ale każda pomoc zostanie doceniona.

Dzięki.

questionAnswers(3)

yourAnswerToTheQuestion