FasterXML / FasterXML/jackson-modules-base

jackson-module-jaxb-annotations: @XmlElements adds unwanted intermediate elements

Đang mở
#308 1 bình luận 0 reaction 0 người được giao Xem trên GitHub
jaxb-annotations
Ngôn ngữ chính
Java
Star
180
Fork
80
Merge trung bình
3 giờ 26 phút
Pull request đã merge (30 ngày)
1

Mô tả

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


```

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.