Dúvida com o xStream xml

Boa tarde!

Estou me batendo aqui para conseguir converter um arquivo xml para um bean utilizando o xStream.

Esse arquivo é um pouco complexo ele possui um root e um node, e mais um node e aí sim as informações como no exemplo:

<?xml version="1.0" encoding="ISO-8859-1"?>

<returnlist>

	<objetos><!--1-->	
		<Dimensao>		
			<descricaoDimensao>Metro</descricaoDimensao>		
			<siglaDimensao>m</siglaDimensao>		
			<indicativoObra>true</indicativoObra>		
			<descricaoIndicativoObra>Sim</descricaoIndicativoObra>		
			<identificador>1</identificador>		
			<dataAtivacao>2003-07-01</dataAtivacao
		</Dimensao>
	</objetos>
</returnlist>

a tag “returnlist” é o root, logo em seguida vem uma tag chamada "objetos " e aí sim uma tag “Dimensao” onde deverá ser iterada e populada em um bean chamado Dimensao como segue:

@XStreamAlias("Dimensao")
public class Dimensao {

	@XStreamAlias("identificador")
	private Long identificador;
	@XStreamAlias("descricaoDimensao")
	private String descricaoDimensao;
	@XStreamAlias("siglaDimensao")
	private String siglaDimensao;
	@XStreamAlias("indicativoObra")
	private boolean indicativoObra;
	@XStreamAlias("descricaoIndicativoObra")
	private String descricaoIndicativoObra;
	@XStreamAlias("dataAtivacao")
	private String dataAtivacao;

getters and setters....

o código que eu utilizo para pegar as informações do xml é esse:

		XStream xStream = new XStream(new Dom4JDriver());			
		xStream.processAnnotations(Dimensao.class);
		BufferedReader input = new BufferedReader(new FileReader(file));
		Dimensao dimensao = (Dimensao) xStream.fromXML(input, new Dimensao());
		input.close();

Ele até funciona se eu retirar as tags “returnlist” e “objetos”, mas quando coloco me dá um erro…

Como resolvo isso???

Obrigado

Cara, o seu xml nao está batendo com o seu modelo…vc tem o objeto Dimensoes ai, ok, mas o xml tem mais coisas, e o XStream tenta converter essa estrutura inteira pra um objeto, não apenas o nó interno, que é como voce está fazendo.

Do jeito que está o seu xml, voce precisaria de algo assim

@XStreamAlias("returnlist")
public class SeuWrapper {
    
   @XStreamAlias("objetos")
   private List<Dimensao> dimensoes
}

aí sim…o seu “returnlist” aí é o root, e dentro dele tem um nó “objetos” com uma lista de “Dimensoes” dentro

Puts cara… era isso mesmo … MUITO OBRIGADO!!!