Ist es möglich, eine Wrapper-Klasse beim JAXB-Marshalling zu ignorieren?
Ich versuche, JAXB dazu zu bringen, eine Wrapper-Klasse während des Mashalling-Prozesses zu ignorieren. Es ist sinnvoll, diese Wrapper-Klasse im Code zu haben, da sie alle zugehörigen Informationen zusammenhält, sie jedoch während des Marshalling-Prozesses entfernen muss. Das Folgende ist der relevante Code.
@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;
}
Root ist das Hauptobjekt, und Resource ist das Wrapper-Objekt, für das kein Knoten erstellt werden soll. Ich möchte jedoch weiterhin, dass das Element, der FieldType und der ListType innerhalb der Ressource gerendert werden.
Das habe ich aktuell:
<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>
Was ich erreichen möchte, ist Folgendes:
<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>
Ich weiß nicht, ob es möglich ist, aber jede Hilfe wäre dankbar.
Vielen Dank.