Я использую Spring для создания rest-controller и jaxb lib для обмена с клиентскими xml-элементами, поэтому моя модель это Users, User и Property.Пользователи содержат список пользователей, каждый пользователь содержит список свойств.Создание пользователей с элементами списка пользователей - это работает, но не может создать внутренний список свойств для элементов пользователя.
Мои модели:
@XmlRootElement(name = "Users")
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
@XmlAccessorType(XmlAccessType.FIELD)
public class Users {
@XmlElement(name = "User")
private List<User> users;
@XmlElement(name = "UserError")
private UserError error;
}
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@XmlRootElement(name = "User")
@XmlAccessorType(XmlAccessType.FIELD)
public class User implements Serializable {
@XmlElement(name = "Id")
private String id;
@XmlElement(name = "Name")
private String name;
@XmlElement(name = "Property")
private List<Property> properties;
}
@Getter
@Setter
@NoArgsConstructor
@XmlRootElement(name = "Property")
@AllArgsConstructor
@XmlAccessorType(XmlAccessType.FIELD)
public class Property implements Serializable {
@XmlElement(name = "passport")
private String passport;
@XmlElement(name = "age")
private String age;
}
Как изменить модель jaxbдля изменения xml с:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Users>
<User>
<Id>fff</Id>
<Name>Alex</Name>
<Property>
<Name>passport</Name>
<Value>111-222</Value>
</Property>
<Property>
<Name>car</Name>
<Value>bmv</Value>
</Property>
</User>
</Users>
К этому представлению представления
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Users>
<User>
<Id>fff</Id>
<Name>Alex</Name>
<Properties>
<Property>
<Name>passport</Name>
<Value>111-222</Value>
</Property>
<Property>
<Name>car</Name>
<Value>bmv</Value>
</Property>
</Properties>
</User>
</Users>