Quiero guardar una cierta clase a xml:Almacenamiento Lista <String> con xstream con nombres definidos
XStream xstream = new XStream(new DomDriver());
List<String> modules = new ArrayList<String>();
modules.add("mod1");
modules.add("mod2");
ModulesConfig modulesConfig = new ModulesConfig(modules);
xstream.processAnnotations(ModulesConfig.class);
log.info(xstream.toXML(modulesConfig));
Clase ModulesConfig:
@XStreamAlias("modules-config")
public class ModulesConfig {
@XStreamAlias("moduleName")
private List<String> moduleNames;
public ModulesConfig(List<String> moduleNames) {
this.moduleNames = moduleNames;
}
public List<String> getModuleNames() {
return moduleNames;
}
public void setModuleNames(List<String> moduleNames) {
this.moduleNames = moduleNames;
}
}
Resultado: Elementos
<modules-config>
<moduleName>
<string>mod1</string>
<string>mod2</string>
</moduleName>
</modules-config>
pero quiero fueron nombrados "moduleName". ¿Cómo configurar xstream o qué anotaciones debo agregar a la clase? Quiero tales resultado:
<modules-config>
<moduleNames>
<moduleName>mod1</moduleName>
<moduleName>mod2</moduleName>
</moduleNames>
</modules-config>
posible duplicado de [personalización de la serialización de colecciones java utilizando xstream] (http://stackoverflow.com/questions/1791178/customising-serialisation-of-java-collections-using-xstream) –
Lea [esto] (http : //xstream.codehaus.org/alias-tutorial.html) – mre