XML から作成される 3 種類の Java オブジェクトに対応するタグを持つ XML があります。オブジェクトの形式は次のとおりです。
A
- static Map<String, A>
- String name
- String aInfo1
- String aInfo2
B
- static Map<String, B>
- String name
- String bInfo1
- String bInfo2
C
- A aObject
- B bObject
ここで、私の XML で、A オブジェクトと B オブジェクトのタグのリストを定義し、名前フィールドを使用して A オブジェクトと B オブジェクトを参照する C オブジェクトのタグを定義します。2 つの要件があります。
- XML から A および B オブジェクトを読み取りながら、A および B に静的マップを設定します。マップには、A.name から A へのマッピング、および B.name から B へのマッピングがそれぞれ含まれます。
- XML タグから A.name と B.name を読み取り、A オブジェクトと B オブジェクトで定義されたマップを使用して、C オブジェクトに入力します。
JAXB のようないくつかの Java フレームワークについて読んだことがありますが、XML からそのようなタイプのオブジェクトを作成する方法を思いつくことができません。これをすぐに使用できる、または最小限のロジックで実行できる Java のフレームワークはありますか?
編集:
別の要件があります。フォームの D および E オブジェクトを定義する必要があります。
D
- Map<A, E>
web.xml でサーブレットを定義する方法と同様に、E オブジェクトを定義します。つまり、最初に E クラスの名前とクラスを定義し、次に E の名前を別の場所で使用します。さらに、パラメータを渡して E オブジェクトをインスタンス化します。タグは次のようになります。
<E>
<name>queryProcessor</name>
<class>com.mydomain.QueryProcessor</class>
</E>
これは、D で Map のコンテンツを定義するときに使用されます。
<D>
<map>
<A>name_of_some_A_object</A>
<E name="queryProcessor">
<param1>name_of_some_B_object</param1>
<param2>name_of_some_B_object</param2>
</E>
<A>name_of_some_A_object</A>
<E name="queryProcessor">
<param1>name_of_some_B_object</param1>
<param2>name_of_some_B_object</param2>
</E>
</map>
</D>
基本的に、D のマップは、ベース タイプ E のクラスに渡されたパラメータと、その名前で参照される A のオブジェクトをインスタンス化することによって生成されます。