Java - Generar Atributos xml con XStream

 
Vista:

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
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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder