私は現在、XStreamを使用してXMLからオブジェクトを作成するシステムを開発しています。オブジェクトの例は次のようになります
@XStreamAlias("TestClass")
public class TestClass{
@XStreamAlias("format")
private String format;
public String getFormat(){
return format;
}
public void setFormat(String format){
this.format = format;
}
}
このクラスには1つのフィールド、フォーマットフィールドがあり、それを構成するXMLは次のようになります。
<TestClass>
<format>foo</format>
</TestClass>
ここで、このクラスのさまざまなインスタンスを特定の形式でインスタンス化したいと思います。たとえば、フォーマットfooのTestClassオブジェクトとフォーマットバーのTestClassオブジェクトが必要です。しかし、生産する代わりに
<TestClass>
<format>foo</format>
</TestClass>
<TestClass>
<format>bar</format>
</TestClass>
上記のXMLが不要になるように、ある種のエイリアスシステムを使用したいのですが、代わりに使用できます。
<TestClassFoo />
<TestClassBar />
もちろん、名前に指定された形式を含める必要はありません。
カスタムコンバーターが必要であることがわかりますが、ここでもすべてのエイリアスをハードコーディングするのではなく、XMLからこれらをロードします(はい、複雑になります)。この結果、動的に構成できるさまざまなXMLオブジェクトのショートカットテンプレートが作成されます。