Popular objeto com XStream a partir de um XML avulso

Bom dia forum.

Sobre o XStream, alguém sabe responder se:

Pode o XStream popular um objeto com os valores de um xml que NÃO foi gerado a partir deste mesmo objeto?
Enquanto eu gero um xml de um tipo qualquer com o XStream, tudo funciona bem, e vai de objeto pra XML e vice-versa numa boa.

Porém agora estou precisando popular um objeto com dados de um XML que NÃO foi gerado a partir deste objeto, ou seja, eu não tenho acesso ao BEAN que deu origem a este xml, porém eu recebo este xml como resposta de um web service, e preciso guardar e tratar os campos que vem nele.

Criei um tipo com todos os atributos do xml que recebo, mas o Xstream por algum motivo parece não conseguir realizar o “fromXML” e popular o objeto, talvez porque o xml não foi gerado a partir dele, ou seja, o objeto servirá para guardar os dados, mas não foi ele que deu origem aos dados, apesar de possuir os mesmo atributos.

Obrigado
Vlw[]´s

Isso aqui?

Você precisa ter os mesmos alias que foram criados na geração do webservice:

http://xstream.codehaus.org/tutorial.html

Eu tô ligado, porém foi um pouco mais complicado do que isso pra resolver. Somente ter os atributos não foi o suficiente, leia abaixo!

É exatamente isso, porém baixei o projeto dele e nao consegui achar uma lib que ficou faltando, e como to sem tempo de ficar ‘catando’ acabei encontrando uma solução interessante aqui: enganar o XStream! Isso mesmo!
Pode parecer louco, mas está funcionando:

String xmlRetorno = //retorno dinamico do webservice Page pg = new Page(); xstream.alias("page",Page.class); String beanEmXML = xstream.toXML(pg); pg = (Page)xstream.fromXML(xmlRetorno); System.out.println("Nome: " + pg.getNome());
O que eu fiz?
Inicializei o xstream como se eu fosse criar um xml, e realmente eu faço isso, assim os meus tipos são inicializados.
Porém eu não uso a string xml que ele gera, mas depois gravo por cima dos objetos, que ele usou para gerar o xml, os dados de uma outra string formatada também em xml, que é a minha resposta, e assim, somente assim, depois de muitas tentativas, ele conseguiu popular os beans com dados de um outro xml…
Vlw pela ajuda aí.
:wink:
[]´s