Вы должны использовать объектное представление определенных вами типов:
Двухместный -> Двухместный
int -> Integer
Это позволяет вам определять их как нулевые, например:
@Root(name = "someWS")
public class GetSmth{
@Element(name="Latitude", required=false)
private Double latitude;
@Element(name="Longtitude", required=false)
private Double longtitude;
@Element(name="PageNumber", required=false)
private Integer pageNumber;
@Element(name="PageSize", required=false)
private Integer pageSize;
@Element(name="CompanyDetailId")
private Integer companyDetailId;
public GetSmth(Double latitude, Double longtitude, Integer pageNumber,
Integer pageSize, Integer companyDetailId) {
this.latitude = latitude;
this.longtitude = longtitude;
this.pageNumber = pageNumber;
this.pageSize = pageSize;
this.companyDetailId = companyDetailId;
}
}
При просмотре документации обязательный = false больше для десериализации объекта, чем для сериализации объекта. Таким образом, вы можете использовать примитивные типы там, но для этого потребуется использовать ненулевое значение во время присваивания. После десериализации, если ваш xml не определяет широту, широте будет присвоено значение инициализации по умолчанию 0 вместо нуля. Просто зависит от того, какое поведение вы хотите.
Изменить:
Обязательно определите конструктор с помощью представлений Object:
public GetSmth(Double latitude, Double longtitude, Integer pageNumber,
Integer pageSize, Integer companyDetailId)