FasterXML / FasterXML/jackson-modules-base
jackson-module-jaxb-annotations: @XmlElements adds unwanted intermediate elements
- Lenguaje dominante
- Java
- Estrellas
- 180
- Forks
- 80
- Merge medio
- 3 h 26 min
- PR fusionados (30 d)
- 1
Descripción
I'm using Jackson to serialize Jakarta-XML annotated classes to XML.
One class has a List field annotated with **@XmlElements**. I expected that the object would be serialized into a parent element, and the contents of the list field would be direct children of that element. Instead, Jackson introduces an unwanted intermediary element, so that the contents of the list become grand children.
I have prepared a quick proof-of-concept in this repo: https://github.com/lgayard-brex/jaxb-xml-elements-issue . Also, see example below.
This is on Jackson 2.15.x, but also reproducible on later versions, 2.16.x, 2.17.x, 2.18.x.
Moreover, I see a difference between Glassfish and Jackson for this serialization. Glassfish serializes as per my expectations, while Jackson introduces this unwanted element.
```
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"andOrOrOrEqualto"
})
@XmlRootElement(name = "and")
public class And {
@XmlElements({
@XmlElement(name = "and", type = And.class),
@XmlElement(name = "or", type = Or.class),
@XmlElement(name = "equalto", type = Equalto.class),
@XmlElement(name = "notequalto", type = Notequalto.class)
})
protected List andOrOrOrEqualto;
```
Example.
Expected output
```xml
STATUS
inactive
NAME
Swag.com
```
Actual output
```xml
STATUS
inactive
NAME
Swag.com
```
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Evaluación
Este issue todavía no se ha evaluado.