是否可以让xml元素相互引用?

时间:2015-01-09 14:51:13

标签: xml json jaxb

让我们说我想建一个家谱。所以我有:

<family name="Smith">
    <member name="Tom">
        <children> ... </children>
    </member>
    <member name="John">
        <father> ... </father>
    </member>
</family>
汤姆是约翰的父亲。

所以我的问题是:

  1. 有没有办法轻易地标记这种关系,约翰的元素father将与解散后的汤姆相同?
  2. 我应该如何注释课程?
  3. 广泛地说,在json中表达相同内容的等效方式是什么?
  4. 请注意,在此处的特定示例中,name不应作为密钥/ ID,因为一个家庭拥有多个共享相同名称的人是非常正常的:

    <family name="Bush">
        <member name="George">
            <children> ... </children>
        </member>
        <member name="George">
            <father> ... </father>
        </member>
    </family>
    

    我想知道是否有办法直接标记元素。

1 个答案:

答案 0 :(得分:1)

您可以使用@XmlID&amp;这个用例@XmlIDREF@XmlID注释将属性标记为关键(您需要一个具有唯一值的属性,即name并不是唯一的,因为在您的示例中它看起来像布什家族中的那样父亲和儿子名叫乔治),@XmlIDREF作为外键。每个对象也需要通过嵌套关系引用(在您的示例中,这可以通过members上的Family属性来完成。

了解更多信息

我在博客上写了更多关于此用例的内容: