我们正在序列化大量对象。某些对象具有属性作为对象列表。
我在Texo序列化程序中找到了一个选项,其中这样的对象列表被保存为引用,并且保存了大量空间而不是多次显示相同的对象。如下所示:
<target:LogicalFact id="6022" version="28"
created="2014-12-01T15:53:59.000+0000"
logicalColumns="#/16651 #/10549 #/17142 #/16898 #/16542 #/16551 #/16832 #/16623 #/17230 #/16645 #/16393 #/16968 #/16575 #/17179 #/17195 #/16717 #/16636 #/16560 #/16410 #/16814 #/16610 #/16691 #/17173 #/16705 #/16838"/>
在上面的示例中,所有逻辑列都是引用。这通过避免重复信息来节省空间。 JAXB序列化器是否有这样的选项。
答案 0 :(得分:1)
您最有可能对允许引用对象的@XmlID
和@XmlIDREF
感兴趣。
@XmlAccessorType(XmlAccessType.FIELD)
public class Employee {
@XmlID
@XmlAttribute
private String id;
@XmlAttribute
private String name;
@XmlIDREF
private Employee manager;
@XmlIDREF
@XmlList
private List<Employee> reports;
public Employee() {
reports = new ArrayList<Employee>();
}
}
请看Blaise Doughan的以下帖子:
http://blog.bdoughan.com/2010/10/jaxb-and-shared-references-xmlid-and.html
上面的代码片段来自这篇文章。