我想知道是否可以在JAXB对象中创建计算字段。这是我想要的快速模型:
public class Person {
public Date dateOfBirth;
// person is eligible for benefits at age 65
public Date getDateEligibleForBenefits() {
}
}
为了使这更加困难,这些类是通过XSD文件生成的:
<xs:schema>
<xs:element name="Person" type="Person" />
<xs:complexType name="Person">
<xs:element name="dateOfBirth" />
</xs:complexType>
</xs:schema>
任何帮助都将不胜感激。
答案 0 :(得分:0)
您创建了一个不完整的xsd方案。右:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="Person" type="Person" />
<xsd:complexType name="Person">
<xsd:sequence>
<xsd:element name="dateOfBirth" type="xsd:dateTime" />
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
“complexType”必须包含“sequence”,然后才包含“element”。我不建议手动编写java类,使用特殊工具生成代码,如 XJC 。 Read this manual
最后你得到一个班级:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Person", propOrder = {
"dateOfBirth"
})
public class Person {
@XmlElement(name = "dateOfBirth", required = true)
@XmlSchemaType(name = "dateTime")
protected XMLGregorianCalendar dateOfBirth;
.....
}