java - XStream Alias of List root elements -
i want able alias root list element depending upon type of objects contained in list. example, current output:
<list> <coin>gold</coin> <coin>silver</coin> <coin>bronze</coin> </list>
and want like:
<coins> <coin>gold</coin> <coin>silver</coin> <coin>bronze</coin> </coins>
i can @ global level saying lists should aliased coins, have lot of different lists , won't work. ideas on how this? seems should simple, of course, isn't.
edit: should specify, trying serialize objects xml. using spring 3 mvc web framework.
let's have coin class type attribute, follows:
@xstreamalias("coin") public class coin { string type; }
and have coins class constains list of coin:
@xstreamalias("coins") public class coins{ @xstreamimplicit list<coin> coins = new arraylist<coin>(); }
pay attention annotations. list implicit , coins class shown "coins".
the output be:
<coins> <coin> <type>gold</type> </coin> <coin> <type>silver</type> </coin> <coin> <type>bronze</type> </coin> </coins>
it's not same asked for, there reason.
at first, coin have 1 attribute, not sure if objects want show have 1 attribute too. so, need tell object attribute talking about.
you can show coin attributes xml attributes, not fields. follows:
@xstreamalias("coin") public class coin { @xstreamasattribute string type; coin(string type) { this.type = type; } }
here output:
<coins> <coin type="gold"/> <coin type="silver"/> <coin type="bronze"/> </coins>
hope helps.
Comments
Post a Comment