2015-01-09 4 views
1

скажем, я хочу построить генеалогическое древо. поэтому у меня есть:Возможно ли иметь элементы xml, ссылающиеся друг на друга?

<family name="Smith"> 
    <member name="Tom"> 
     <children> ... </children> 
    </member> 
    <member name="John"> 
     <father> ... </father> 
    </member> 
</family> 

где Том - отец Иоанна.

поэтому мой вопрос:

  1. есть способ, чтобы отметить этот вид отношений легко и элемент father Джона будет один и тот же объект, как Том после распаковать?
  2. Как я должен аннотировать классы?
  3. экстенсивно, что эквивалентно, чтобы выразить одно и то же в json?

обратите внимание, что в моем конкретном примере здесь, name не должно служить ключом/ид, так как это очень нормально для семьи, чтобы иметь несколько людей, разделяющих то же имя:

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

я хочу знать если есть способ маркировать элемент напрямую.

ответ

1

Вы можете использовать @XmlID & @XmlIDREF для этого прецедента. Аннотации @XmlID означают, что свойство является ключевым (вам понадобится свойство с уникальным значением, то есть name не является уникальным, так как в вашем примере это выглядит как в семье Буша есть отец и сын по имени Джордж) и @XmlIDREF как иностранный ключ. Каждый объект также должен ссылаться через вложенность отношений (в вашем примере это будет достигнуто с помощью members собственности на Family.

Для получения более подробной информации

я написал больше об этом прецеденте в моем блоге :

+0

насчет XML-текста некоторые я должен представить его? – HuStmpHrrr

Смежные вопросы