Мне нужно сгенерировать это XML:
<CRequest>
<abc:Name>Smith</abc:Name>
<abc:FirstName>John</abc:Surname>
<abc:Age>12</abc:Age>
<abc:Name>Jones</abc:Name>
<abc:FirstName>Jake</abc:Surname>
<abc:Age>10</abc:Age>
<abc:Name>Johnson</abc:Name>
<abc:FirstName>Paul</abc:Surname>
<abc:Age>12</abc:Age>
</CRequest>
Однако лучшее, что я мог сделать, было:
<CRequest>
<children>
<abc:Name>Smith</abc:Name>
<abc:FirstName>John</abc:Surname>
<abc:Age>12</abc:Age>
</children>
<children>
<abc:Name>Jones</abc:Name>
<abc:FirstName>Jake</abc:Surname>
<abc:Age>12</abc:Age>
</children>
<children>
<abc:Name>Johnson</abc:Name>
<abc:FirstName>Paul</abc:Surname>
<abc:Age>12</abc:Age>
</children>
</CRequest>
У меня есть следующие Java классы:
@JsonRootName("CRequest")
@XmlAccessorType(XmlAccessType.FIELD)
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class ChildrenRequest {
@JacksonXmlElementWrapper(useWrapping = false)
private List<Child> children= new ArrayList<>();
...
и
@XmlAccessorType(XmlAccessType.FIELD)
@JsonInclude(JsonInclude.Include.NON_EMPTY)
@JsonPropertyOrder({"Name", "FirstName", "Age"})
public class Child{
@JsonProperty("Name")
@JacksonXmlProperty(localName = "abc:Name")
private String name;
@JsonProperty("Surname")
@JacksonXmlProperty(localName = "FirstName")
private String firstName;
@JsonProperty("Age")
@JacksonXmlProperty(localName = "abc:Age")
private String age;
...
Есть ли способ избавиться от дочерних тегов?
PS: Без "useWrapping = false" я получаю два дочерних тега для каждого ребенок.