Bom dia, estava com problemas para pegar os valores de dentro da primeira tag de beneficiario =>
<beneficiario cco="023396310926" situacao="ATIVO" dataAtualizacao="2010-08-07">
<identificacao>
<cpf>00039107094</cpf>
<nome>JONATHAN ROGERS DA ROSA</nome>
<sexo>1</sexo>
<dataNascimento>1981-06-15</dataNascimento>
<nomeMae>ELISABETE MARIA DA ROSA</nomeMae>
</identificacao>
<endereco>
<logradouro>RUA SANTO AUGUSTO</logradouro>
<numero>00404</numero>
<bairro>MEDIANEIRA</bairro>
<codigoMunicipio>432120</codigoMunicipio>
<cep>95600000</cep>
<resideExterior>0</resideExterior>
</endereco>
<vinculo>
<codigoBeneficiario>103378040009</codigoBeneficiario>
<relacaoDependencia>1</relacaoDependencia>
<dataContratacao>2010-07-01</dataContratacao>
<numeroPlanoANS>432212006</numeroPlanoANS>
<itensExcluidosCobertura>0</itensExcluidosCobertura>
<cnpjEmpresaContratante>02016439000138</cnpjEmpresaContratante>
</vinculo>
</beneficiario>
então utilizei a interface converter do xstream e funcionou bem para pegar os valores da primeira tag, como cco, situacao e dataAtualizacao
mas quando vou pagar idetificacao, endereco e vinculo nao me retorna nada.
[code]public class ConversorBeneficiario implements Converter {
@Override
public void marshal(Object valor, HierarchicalStreamWriter escreve, MarshallingContext texto) {
Beneficiario beneficiario = (Beneficiario) valor;
escreve.addAttribute("cco", beneficiario.getCco());
escreve.addAttribute("situacao", beneficiario.getSituacao());
escreve.addAttribute("dataAtualizacao", beneficiario.getDataAtualizacao());
//Identificacao
//utilizar setValue()
escreve.setValue(beneficiario.getIdentificacao().getCpf());
escreve.setValue(beneficiario.getIdentificacao().getNome());
escreve.setValue(beneficiario.getIdentificacao().getSexo());
escreve.setValue(beneficiario.getIdentificacao().getDataNascimento());
escreve.setValue(beneficiario.getIdentificacao().getNomeMae());
//Endereco
escreve.setValue(beneficiario.getEndereco().getLogradouro());
escreve.setValue(beneficiario.getEndereco().getNumero());
escreve.setValue(beneficiario.getEndereco().getBairro());
escreve.setValue(beneficiario.getEndereco().getCodigoMunicipio());
escreve.setValue(beneficiario.getEndereco().getCep());
escreve.setValue(beneficiario.getEndereco().getTipoEndereco());
escreve.setValue(beneficiario.getEndereco().getResideExterior());
escreve.setValue(beneficiario.getEndereco().getComplemento());
escreve.setValue(beneficiario.getEndereco().getCodigoMunicipioResidencia());
//Vinculo
escreve.setValue(beneficiario.getVinculo().getCodigoBeneficiario());
escreve.setValue(beneficiario.getVinculo().getRelacaoDependencia());
escreve.setValue(beneficiario.getVinculo().getCcoBeneficiarioTitular());
escreve.setValue(beneficiario.getVinculo().getDataContratacao());
escreve.setValue(beneficiario.getVinculo().getNumeroPlanoANS());
escreve.setValue(beneficiario.getVinculo().getCoberturaParcialTemporaria());
escreve.setValue(beneficiario.getVinculo().getItensExcluidosCobertura());
escreve.setValue(beneficiario.getVinculo().getCnpjEmpresaContratante());
escreve.setValue(beneficiario.getVinculo().getDataCancelamento());
escreve.setValue(beneficiario.getVinculo().getMotivoCancelamento());
escreve.setValue(beneficiario.getVinculo().getDataReativacao());
escreve.setValue(beneficiario.getVinculo().getNumeroPlanoOperadora());
}
@Override
public Object unmarshal(HierarchicalStreamReader ler, UnmarshallingContext texto) {
Beneficiario beneficiario = new Beneficiario();
Identificacao identificacao = new Identificacao();
Endereco endereco = new Endereco();
Vinculo vinculo = new Vinculo();
beneficiario.setCco(ler.getAttribute("cco"));
beneficiario.setSituacao(ler.getAttribute("situacao"));
beneficiario.setDataAtualizacao(ler.getAttribute("dataAtualizacao"));
//Identificacao
identificacao.setCpf(ler.getValue());
identificacao.setNome(ler.getValue());
identificacao.setSexo(ler.getValue());
identificacao.setDataNascimento(ler.getValue());
identificacao.setNomeMae(ler.getValue());
//Endereco
endereco.setLogradouro(ler.getValue());
endereco.setNumero(ler.getValue());
endereco.setBairro(ler.getValue());
endereco.setCodigoMunicipio(ler.getValue());
endereco.setCep(ler.getValue());
endereco.setTipoEndereco(ler.getValue());
endereco.setResideExterior(ler.getValue());
endereco.setComplemento(ler.getValue());
endereco.setCodigoMunicipioResidencia(ler.getValue());
//Vinculo
vinculo.setCodigoBeneficiario(ler.getValue());
vinculo.setRelacaoDependencia(ler.getValue());
vinculo.setCcoBeneficiarioTitular(ler.getValue());
vinculo.setDataContratacao(ler.getValue());
vinculo.setNumeroPlanoANS(ler.getValue());
vinculo.setCoberturaParcialTemporaria(ler.getValue());
vinculo.setItensExcluidosCobertura(ler.getValue());
vinculo.setCnpjEmpresaContratante(ler.getValue());
vinculo.setDataCancelamento(ler.getValue());
vinculo.setMotivoCancelamento(ler.getValue());
vinculo.setDataReativacao(ler.getValue());
vinculo.setNumeroPlanoOperadora(ler.getValue());
beneficiario.setIdentificacao(identificacao);
beneficiario.setEndereco(endereco);
beneficiario.setVinculo(vinculo);
return beneficiario;
}
@Override
public boolean canConvert(Class clazz) {
return clazz.equals(Beneficiario.class);
}
}
[/code]
para melhor entendimento do código esta é minha classe de Beneficiario
e minha classe de Beneficiario
[code]@XStreamAlias(“beneficiario”)
public class Beneficiario {
private String cco;
private String situacao;
private String dataAtualizacao;
@XStreamAlias("identificacao")
private Identificacao identificacao;
@XStreamAlias("endereco")
private Endereco endereco;
@XStreamAlias("vinculo")
private Vinculo vinculo;
//gettrs e settrs
[/code]