我通过Web服务接收XML,并且我使用XmlElement Annotation将XML解析为Java。这是我如何使用注释。如果我正确使用它们,请告诉我。我对int领域特别感兴趣。它似乎工作,但我觉得我没有正确使用注释。我看到很多类似于@XmlElement的例子(name =“something”type = Integer.class)。是否也在XmlJavaTypeAdapter注释上建议了此类型属性?我为一长串问题道歉,这是我第一次使用XmlElement注释,我想确保我做得对。提前感谢您的帮助。
@XmlRootElement(name="Person")
public class Person {
@XmlElement(name="FirstName")
public String firstName = "";
@XmlElement(name="LastName")
public String lastName="";
@XmlElement(name="Age")
public int age = 0;
@XmlElement(name="BirthDate")
@XmlJavaTypeAdapter(DateAdapter.class)
public Date birthDate = new Date(0);
}
public class DateAdapter extends XmlAdapter<String, Date> {
private static final DateFormat FORMAT = new SimpleDateFormat("yyyy-MM-dd");
@Override
public String marshal(Date date) throws Exception {
return (date == null) ? "" : FORMAT.format(date);
}
@Override
public Date unmarshal(String str) throws Exception {
return FORMAT.parse(str);
}
}
答案 0 :(得分:3)
在我看来,你的解决方案是正确的。
但是,如果Age元素可能包含int
,则可能需要将Integer
替换为null
(您应该检查XSD文件中Person元素的定义(如果是是一个Web服务,你可以在wsdl文件中找到xsd))。