У меня есть JAXB-аннотированный класс Customer следующим образом
@XmlRootElement(namespace = "http://www.abc.com/customer")
public class Customer{
private String name;
private Address address;
@XmlTransient
private HashSet set = new HashSet<String>();
public String getName(){
return name;
}
@XmlElement(name = "Name", namespace = "http://www.abc.com/customer" )
public void setName(String name){
this.name = name;
set.add("name");
}
public String getAddress(){
return address;
}
@XmlElement(name = "Address", namespace = "http://www.abc.com/customer")
public void setAddress(Address address){
this.address = address;
set.add("address");
}
public HashSet getSet(){
return set;
}
}
Мне нужно вернуть пустой XML, представляющий это пользователю, чтобы он мог заполнить необходимые значения в XML и отправить запрос
Итак, что мне нужно, это:
<Customer>
<Name></Name>
<Address></Address>
</Customer>
Если я просто создаю пустой объект
Customer cust = new Customer() ;
marshaller.marshall(cust,sw);
все, что я получаю, это элемент верхнего уровня, так как другие поля класса не установлены.
Что я могу сделать, чтобы получить такой пустой XML? Я пытался добавить аннотацию nillable = true к элементам, однако это возвращает мне XML с xsi: nil = "true", который затем
мой маршаллер, чтобы игнорировать это.
Как мне этого добиться?