【问题标题】:JAXB serialization: Option to have a reference to inner objectsJAXB 序列化:引用内部对象的选项
【发布时间】:2015-08-26 07:41:33
【问题描述】:

我们正在序列化大量对象。一些对象具有作为对象列表的属性。

我在 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 序列化程序是否有任何此类选项可用。

【问题讨论】:

    标签: serialization jaxb


    【解决方案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

    上面的代码sn-p取自这篇文章。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-27
      • 1970-01-01
      • 1970-01-01
      • 2021-12-08
      • 1970-01-01
      • 2013-10-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多