JAXB重复对象

时间:2015-01-11 20:28:17

标签: java jaxb

如果假设它们相同,如何避免创建不同的对象实例?

这是xml文件:

<family>
    <person>
        <firstName>John</firstName>
        <father>
            <firstName>Gary</firstName>
        </father>
        <mother>
            <firstName>Jane</firstName>
        </mother>
    </person>
    <person>
        <firstName>Philip</firstName>
        <father>
            <firstName>Franck</firstName>
        </father>
        <mother>
            <firstName>Jane</firstName>
        </mother>
    </person>
</family>

父元素属于Person类型。 我有两个人和同一个母亲,当我解组xml文件时,它会创建两个不同的Person类实例。有没有办法告诉他们应该是同一个对象?

1 个答案:

答案 0 :(得分:1)

XML文件可以使用&#34;指针&#34;的等价物。就XML Schema而言,

<xsd:element name="name" type="xsd:ID"/> <!-- in Person-->

<xsd:element name="persref" type="xsd:IDREF"/> <!-- the "pointer" to a person -->

&#34;指针&#34;是Person字段的值,它必须是唯一的(因此单独一个人的名字通常是不够的)。而不是整个对象的编组只有一个&#34;指针&#34;价值被编组。完整的对象本身必须单独编组。

在您的情况下,这很简单,因为每个人只出现一次,只有一次作为家庭成员。你只需使用&#34; persref&#34;父亲和母亲的元素。 - 请参阅this tutorial(另请a second section)了解技术详情。