2011-07-19 11 views
1

次の問題(私はJava/JAXBの初心者で、PHPの背景から来ているため問題です)へのリンクをリクエストしています。データベースのXML出力をJAXBの派生オブジェクトモデルにマップする方法

組織によって管理されている&で作成された複雑な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; 
     } 

どのように私はproblemDateにxml要素<PROBLEM_DATE>をマッピングするのでしょうか?私が始めるのを助けることができる記事/チュートリアルをアドバイスしてください。また、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にお読みください。 > PROBLEM_DATEと一般fooBarにで - - > FOO_BAR、それを書くのはかなり簡単なはず、この特定の問題のために、あなたは一般的なパターンがある場合、problemDateよう

@XmlElement(name="PROBLEM_DATE") 

でgetProblemDate()メソッドに注釈を付けたいですあなたが必要とするものを得るためにregex find/replaceを実行します。

関連する問題