2012-10-09 94 views
1

問候同胞程序員!JaxB unmarshalling - 創建對象的引用

我在將xml解組到一個對象時遇到了一個主要問題。我需要創建一個對象的引用。我怎樣才能做到這一點?我試過使用XSL轉換,但由於循環發生,這不是一個正確的方法。我100%肯定有一個簡單的方法。這裏是我的XML:

<report> 
    <subject> 
     <subjectId>1</subjectId> 
     <name>John</name> 
     <surname>Doe</surname> 
    </subject> 
    <subject> 
     <subjectId>2</subjectId> 
     <name>Frank</name> 
     <surname>Timothy</surname> 
    </subject> 
    <individual> 
     <individualId>10</individualId> 
     <name>Isaac</name> 
     <surname>Newton</surname> 
     <co-worker> 
      <subject> 
       <subjectId>1</subjectId> 
       <inXml>true</inXml> 
      </subject> 
      <subject> 
       <subjectId>2</subjectId> 
       <inXml>true</inXml> 
      </subject> 
     </co-worker> 
    </individual> 

    <owner> 
     <subject> 
      <subjectId>2</subjectId> 
      <inXml>true</inXml> 
     </subject> 
     <share>100</share> 
    </owner> 
</report> 

我需要創建「主題」或「個體」與inXml =真正的參考。這個標誌告訴我,我們在XML中擁有那個ID的實體。 非常感謝您的幫助:)

回答

2

您可以使用@XmlID/@XmlIDREF在您的XML文檔中映射基於關鍵字的關係。

+0

那也不會幫助,bcoz我不知道這個 「參考」 將occure。 如果「主題」第一次出現在XML中,它將放置所有的數據,如果它出現2+,那麼在XML中有一個標誌+ ID –

+0

@MironBe - 以下可能是您要查找的內容:http ://blog.bdoughan.com/2011/09/mixing-nesting-and-references-with.html –

+0

我相信這就是我的需要..但是我怎樣才能找到某個主題並獲得它的ID?我附帶的XML非常簡單,只是爲了說明問題 - 在現實生活中,我使用MANY嵌套節點(從根到最多5級)從數據庫中接收超過300kb的數據。在我研究您提供的文章時 - 我遇到了問題 - 我是否需要將已經在「內存中」的中的所有數據複製到新的改編的? –