У вас есть более одного значения, поэтому для элементов <value>
необходимо определить список значений.
Элементы содержатся внутри элементов, поэтому здесь у вас есть вложенная структура. Это означает, что вам нужен класс Property, содержащийся в вашем классе Resource, а ваш класс Property должен содержать класс Value.
Вам необходимо связать атрибут ключа и атрибуты xml: lang.
Вот пример Jaxb-аннотированных классов, которые выполняют большую часть работы для отображения в ваш формат XML. Завершите, как вам нужно.
@XmlRootElement
public class Resource {
private Property property = new Property();
public Property getProperty() {
return property;
}
public void setProperty(Property property) {
this.property = property;
}
public static void main(String[] args) throws JAXBException {
JAXBContext context = JAXBContext.newInstance(Resource.class);
Marshaller marshaller = context.createMarshaller();
Resource resource = new Resource();
resource.getProperty().setKey("hour.plural");
resource.getProperty().getValues().add(new Value("fr"));
resource.getProperty().getValues().add(new Value("it"));
resource.getProperty().getValues().add(new Value("ru"));
marshaller.marshal(resource, System.out);
}
}
class Property {
private String key;
private List<Value> values = new ArrayList<>();
@XmlAttribute
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
@XmlElement(name = "value")
public List<Value> getValues() {
return values;
}
public void setValues(List<Value> values) {
this.values = values;
}
}
class Value {
private String lang;
public Value() {
}
public Value(String lang) {
this.lang = lang;
}
@XmlAttribute
public String getLang() {
return lang;
}
public void setLang(String lang) {
this.lang = lang;
}
}