JAXB を使用してこの xml メッセージを作成することを検討してください。
<msg>
<database id="111">
<table name="t1" pkCol="id">
<row op="update">
<col name="id" value="12345"/>
<col name="age" value="30"/>
<col name="name" value="John"/>
</row>
<row ...>
</row>
</table>
<table ...>
:
</table>
</database>
<database ...>
<table ...>
</table>
</database>
</msg>
既存の従来の実装では、各タグ、つまり Msg、Database、Table、Row、および Column に個別のクラスがあります。共通の基本クラスはありません。各クラスには、List/ArrayList、引数なしのコンストラクター、および @XmlAttribute と List の追加用のその他のセッターがあります。
Composite パターン (他のパターンの提案?) を適用しようとしています。これらのクラスはすべてノード (子ノードを持つ) であり、対応する独自の属性を持つためです。共通の基本クラスを考え出す
class Node<X> extends ArrayList<X>
しかし、サブクラス内から基本クラスに @XmlElement(name ="depends_on_subclass") を適用する方法がわかりません。サブクラス内から、ダミーの getSelf() メソッドに @XmlElement を追加しない限り、たとえば Table で、
class Table extends Node<Row>
{
@XmlElement(name="row")
public Table getSelf()
{
return this;
}
:
:
他のまたはより良い提案はありますか?前もって感謝します。