Problemas com o Xstream (tag igual a atributo) [Resolvido]

Boa tarde a todos!

Estou precisando de uma ajuda em Xstream. Já dei umas boas googladas e não achei o que preciso.

Estou fazendo um parse no xml com o Xstream, até ai tudo bem, mas não consigo pegar um atributo.

Meu XML:

... ...

Minha classe:

@XStreamAlias(“nota”)
public class Nota implements Serializable {

@XStreamAlias("cancelamento")
@XStreamAsAttribute	
private String cancelamento;

@XStreamAlias("liquidacao")
@XStreamAsAttribute
private String dataliquidacao;

@XStreamAlias("numerodanota")
@XStreamAsAttribute
private String numero;

@XStreamAlias("datadonegocio")
@XStreamAsAttribute
private String dataNegocio;

@XStreamAlias("cliente")
@XStreamAsAttribute
private String codigoCliente;

@XStreamAlias("cliente")
private Cliente cliente;

@XStreamAlias("financeiro")
private Financeiro financeiro;


@XStreamImplicit(itemFieldName="negocio")
private List<Negocio> negocios;

Gets e sets

Quando eu faço getAnnotatedMarshaller().getXStream().fromXML(Meu xml) ele me retorna todos os campos(cancelamento,liquidacao…), menos o valor do atributo “cliente”.

Obrigado!

Talvez seja porque você colocou o alias repetido, tente criar uma diferença entre eles.

[code]@XStreamAlias(“cliente”) // << Este alias esta igual ao seguinte.
@XStreamAsAttribute
private String codigoCliente;

@XStreamAlias(“cliente”) // << E este esta igual ao anterior
private Cliente cliente; [/code]

Faça um teste assim:

[code]@XStreamAlias(“codigoCliente”) // Alterei aqui de cliente para codigoCliente
@XStreamAsAttribute
private String codigoCliente;

@XStreamAlias(“cliente”)
private Cliente cliente; [/code]

flws

Olá fantomas!

É exatamente esse o problema. Não sou eu que gero esse xml, eu já recebo ele pronto e quem envia não tem como alterar.

Não encontrei nenhum maneira de resolver usando o XStream, então depois de carregar o meu XML em uma String eu tive que fazer um replace substituindo o “cliente” por “clienteCod”. Valeu fantomas pela ajuda.