0

私は現在、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オブジェクトのショートカットテンプレートが作成されます。

4

1 に答える 1

0

目標がよりコンパクトな XML である場合は、次の@XStreamAsAttributeような出力が得られるように使用してみません<TestClass format="foo"/>か? それ以外の場合は、必要なことを正確に実行するためにカスタム コンバーターを作成する必要があります。

于 2012-09-25T16:09:31.117 に答える