2011-07-19 89 views
1

我正在請求鏈接到源/材料,這將幫助我解決以下問題(一個問題,因爲我是Java/JAXB的新手,來自PHP背景)。如何將數據庫XML輸出映射到JAXB派生的對象模型

我提供了一個由組織維護的複雜XSD,該複合XSD創建爲&。我使用JAXB 2.1創建了java對象模型。我需要將數據庫字段映射到java/jaxb派生類。數據庫字段/元素通過簡單的XML輸出呈現。 XML數據庫記錄輸出的示例如下:的JAXB派生類的

<PROBLEM> 
<PID>262</ID> 
<PROBLEM_DATE>14-DEC-10</PROBLEM_DATE> 
<PROBLEM_TYPE>T</PROBLEM_TYPE> 
<PROBLEM_CODE>244.9</PROBLEM_CODE> 
</PROBLEM> 

例如:

protected IvlTs problemDate; 

public IvlTs getProblemDate() { 
      return problemDate; 
     } 

public void setProblemDate(IvlTs value) { 
      this.problemDate = value; 
     } 

我將如何映射的XML元素<PROBLEM_DATE>到problemDate?請告知可以幫助我開始使用的文章/教程。此外,XML數據庫提取量很大,有近500個字段/ xml元素,是否有自動化映射的方法或者必須全部手動完成?

+0

你知道你可以使用XSD來生成Java類,對嗎?請參閱http://download.oracle.com/javaee/5/tutorial/doc/bnbah.html。 –

+0

我能夠使用XSD生成類。這是我不明確的下一步。也就是說,我以XML的形式給出了一個數據庫記錄摘錄(上面的XML示例)。我需要解開這個XML文檔。當java解組XML文檔時,如何將數據庫XML元素映射到Java Jaxb派生類? – Hjones

回答

2

您需要閱讀JAXB annotations。對於這個特殊的問題,你想與

@XmlElement(name="PROBLEM_DATE") 

來註釋getProblemDate()方法,如果有一個共同的模式,像problemDate - > PROBLEM_DATE和一般的Foobar - > foo_bar這樣的話,那應該是很容易寫正則表達式查找/替換來獲得你所需要的。