FasterXML / FasterXML/jackson-dataformat-xml
Hard coding for Indexed type item/wrapper name removes all possiblity of customization
- Ngôn ngữ chính
- Java
- Star
- 631
- Fork
- 246
- Merge trung bình
- 7 ngày 9 giờ
- Pull request đã merge (30 ngày)
- 13
Mô tả
https://github.com/FasterXML/jackson-dataformat-xml/blob/6bd59fb77aa27bfba8d51eb36a346d218f201142/src/main/java/com/fasterxml/jackson/dataformat/xml/ser/XmlSerializerProvider.java#L146
In following function
```java
protected void _startRootArray(ToXmlGenerator xgen, QName rootName) throws IOException
{
xgen.writeStartObject();
// Could repeat root name, but what's the point? How to customize?
xgen.writeFieldName("item");
}
```
Although `rootName` has been passed it is not being used. This makes it impossible to change array type wrapper name. If someone needs `item` as their wrapper they can set `@JacksonXmlRootElement(localName="item")` but otherwise is not possible.
Alternatively we can have another attribute in annotation like `@JacksonXmlRootElement(localName="some_node", wrapperForIndexedType="some_node")`
having interface declaration of _JacksonXmlRootElement.java_ as
```java
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface JacksonXmlRootElement
{
String namespace() default "";
String localName() default "";
String wrapperForIndexedType() default "item";
}
```
___
Problem:
Trying to generate output like
```xml
p1
p2
p1
p2
```
getting:
```xml
p1
p2
p1
p2
```
However if hard-coding is removed it would be easier to generate json and xml from a same function and entity definition with some varied level of alteration at XML layer. This avoids re-declaring everything to get two different representation of output i.e. json and xml.
For example in my case I have to port an old API which has response format for json:
```json
[
{"p1": "p1", "p2": "p2"},
{"p1": "p1", "p2": "p2"}
]
```
for xml:
```xml
p1
p2
p1
p2
```
but I cannot achieve the xml format without rewriting all POJOs.
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á.