[英]JAXB Marshall & Unmarshall Java complex Class
我正在 Java 项目中使用 JAXB。
我想用 JAXB 处理我的数据,但我对这些类有问题。
我应该在字段中添加什么样的标签等才能使编组和解组工作?
包装类
@XmlElement(name="database")
public class Wrapper {
private List <Person> persons;
private List <Quote> quotes;
@XmlElement(name="persons")
public List<Person> getPersons(){
return=this.persons;
}
@XmlElement(name="quotes")
public List<Quote> getQuotes(){
return=this.quotes;
}
}
人物类
@XmlRootElement(name="person")
public class Person {
private final StringProperty name;
private final StringProperty telephone;
private final StringProperty mail;
private final ObjectProperty<LocalDate> date;
//I have problem with this complex field:
private final ObjectProperty<List <Job>> jobs;
//Constructor getters and setters
...
}
作业类
@XmlRootElement(name="job")
public class Job {
private final StringProperty roleName;
private final StringProperty id;
//I have problem with this complex field too:
private final ObjectProperty<List <Subrole>> subroles;
//Constructor getters and setters
...
}
子角色类
@XmlRootElement(name="subroles")
public class SubRole {
private final StringProperty subRoleName;
private final ObjectProperty<List <String>> actions;
//really don't know how to treat this
private final ObjectProperty<List<List <Activity>>> activities;
//Constructor getters and setters
...
}
活动类
@XmlRootElement(name="activities")
public class Activity{
private final StringProperty activityName;
private final FloatProperty salary;
private final FloatProperty hours;
//Constructor getters and setters
...
}
如果您对该主题缺乏了解,并且您正在使用 Eclipse,我可以建议您根据您的类层次结构创建您自己的 XSD(XML 架构定义)文件(例如,您可以尝试 Altova XML Spy)。 之后,将该 xsd 移动到您的项目并在 Eclipse 中自动生成 JAXB 类(右键单击 xsd,您将看到生成选项)。
它将生成您的 JAXB 类,因此您可以检查它们并学习如何管理这些类型的对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.