Generar Atributos xml con XStream
Publicado por Karella (1 intervención) el 08/02/2016 01:09:13
Hola a todos, como veran soy nuevo en el foro.
Estoy teniendo unas pequeñas difucultades a la hora de conseguir un xml, el resultado deberia ser este
El problema viene a la hora de generar los atributos cip y empresa, mi clase proveedor es la siguiente
En la documentacion de XStream he encontrado estos 2 metodos aliasFile(“nombreTag”, Clase.class, “nombreAtributo”) y useAttributeFor(Clase.class, "nombreAtributo"); el problema es que este ultimo no me lo reconoce como un metodo de la clase XStream es decir no lo puedo ejecutar y con el aliasFile ejecutandolo de la siguiente manera: xstream.aliasField("name", Proveedor.class, "cif");
consigo este xml
como si usase un alias normal.
Si me pueden ayudar se lo agradeceria.
Estoy teniendo unas pequeñas difucultades a la hora de conseguir un xml, el resultado deberia ser este
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<Proveedor fif="150" empresa="Mi Proveedor">
<calle>Mi Calle</calle>
<ciudad>Madrid</ciudad>
<pais>España</pais>
<cp>2850</cp>
<esNacional>Importacion</esNacional>
<cafes>
<Cafe>
<marca>cafeIESCE</marca>
<precio>5,3</precio>
<venta>43</venta>
</Cafe>
<Cafe>
<marca>cafeIESSanFer</marca>
<precio>6.8</precio>
<venta>45</venta>
</Cafe>
</cafes>
</Proveedor>
El problema viene a la hora de generar los atributos cip y empresa, mi clase proveedor es la siguiente
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
public class Proveedor {
private String cif;
private String empresa;
private String calle;
private String ciudad;
private String pais;
private String cp;
private String esNacional;
private ArrayList<Cafe> cafes = new ArrayList<Cafe>();
public String getCif() {
return cif;
}
public void setCif(String cif) {
this.cif = cif;
}
public String getEmpresa() {
return empresa;
}
public void setEmpresa(String empresa) {
this.empresa = empresa;
}
public String getCalle() {
return calle;
}
public void setCalle(String calle) {
this.calle = calle;
}
public String getCiudad() {
return ciudad;
}
public void setCiudad(String ciudad) {
this.ciudad = ciudad;
}
public String getPais() {
return pais;
}
public void setPais(String pais) {
this.pais = pais;
}
public String getCp() {
return cp;
}
public void setCp(String cp) {
this.cp = cp;
}
public String getEsNacional() {
return esNacional;
}
public void setEsNacional(String esNacional) {
this.esNacional = esNacional;
}
public ArrayList<Cafe> getCafes() {
return cafes;
}
public void setCafes(ArrayList<Cafe> cafes) {
this.cafes = cafes;
}
}
En la documentacion de XStream he encontrado estos 2 metodos aliasFile(“nombreTag”, Clase.class, “nombreAtributo”) y useAttributeFor(Clase.class, "nombreAtributo"); el problema es que este ultimo no me lo reconoce como un metodo de la clase XStream es decir no lo puedo ejecutar y con el aliasFile ejecutandolo de la siguiente manera: xstream.aliasField("name", Proveedor.class, "cif");
consigo este xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<Proveedor>
<cif>150</cif>
<empresa>Mi Proveedor</empresa>
<calle>Mi Calle</calle>
<ciudad>Madrid</ciudad>
<pais>España</pais>
<cp>2850</cp>
<esNacional>Importacion</esNacional>
<cafes>
<Cafe>
<marca>cafeIESCE</marca>
<precio>5,3</precio>
<venta>43</venta>
</Cafe>
<Cafe>
<marca>cafeIESSanFer</marca>
<precio>6.8</precio>
<venta>45</venta>
</Cafe>
</cafes>
</Proveedor>
como si usase un alias normal.
Si me pueden ayudar se lo agradeceria.
Valora esta pregunta


0