[RESOLVIDO]Criar método para ler xml com muitas classes

Bom dia pessoal, gostaria de pedir ajuda de vocês para criar um método para ler um xml utilizando xstream tenho no total 27 classes.
Como poderia fazer isso utilizando um list por exemplo.

Hmm… que? :shock:

O que tem a ver a quantidade de classes com o leitor de xml, e pra que a lista?

Gostaria de saber se tem alguma ideia para me ajudar.

Mas eu nem entendi o que você quer, amigo.

se você quer um método pra ler xml o xstream tem vários.

Tente explicar melhor o que você quer. Elabore.

Certo tenho minhas classes java que representam a estrutura do meu documento xml e preciso criar um método para ler os valores das tags e transformar para objetos java.
Já mapeei elas oque devo fazer agora ??? :cry:

[code]public void lerXML(){

    try {
        XStream xs = new XStream(new Dom4JDriver());
        Principal p = new Principal();
        BufferedReader input = new BufferedReader(new FileReader(p.caminhoDoArquivo()));
        
        
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }
    
}[/code]

Tem esse artigo do GUJ que pode te ajudar bastante:

XStream: Trabalhando com facilmente XML em Java

Bom amigo o exemplo beleza, funcionou direito mas o problema é com meu arquivo :S
abss.

vou buscar a solução obrigado por tudo

Amigo minha classe para ler ficou assim…

[code]public void imprimirDadosXML() {

    try {
        XStream xStream = new XStream(new Dom4JDriver());
        xStream.alias("mensagemTISS", ArrayList.class);
        xStream.alias("cabecalho", ArrayList.class);
        xStream.processAnnotations(Cabecalho.class);
        xStream.alias("identificacaoTransacao", ArrayList.class);
        xStream.processAnnotations(IdentificacaoTransacao.class);
        xStream.alias("origem", ArrayList.class);
        xStream.processAnnotations(Origem.class);
        xStream.alias("codigoPrestadorNaOperadora", ArrayList.class);
        xStream.processAnnotations(CodigoPrestadorNaOperadora.class);
        xStream.alias("destino", ArrayList.class);
        xStream.processAnnotations(Destino.class);
        xStream.alias("prestadorParaOperadora", ArrayList.class);
        xStream.processAnnotations(PrestadorParaOperadora.class);
        xStream.alias("loteGuias", ArrayList.class);
        xStream.processAnnotations(LoteGuias.class);
        xStream.alias("guias", ArrayList.class);
        xStream.processAnnotations(Guias.class);
        xStream.alias("guiaFaturamento", ArrayList.class);
        xStream.processAnnotations(GuiaFaturamento.class);
        xStream.alias("guiaSP_SADT", ArrayList.class);
        xStream.processAnnotations(GuiaSP_SADT.class);
        xStream.alias("identificacaoGuiaSADTSP", ArrayList.class);
        xStream.processAnnotations(IdentificacaoGuiaSADTSP.class);
        xStream.alias("identificacaoFontePagadora", ArrayList.class);
        xStream.processAnnotations(IdentificacaoFontePagadora.class);
        xStream.alias("dadosBeneficiario", ArrayList.class);
        xStream.processAnnotations(DadosBeneficiario.class);
        xStream.alias("dadosSolicitante", ArrayList.class);
        xStream.processAnnotations(DadosSolicitante.class);
        xStream.alias("contratado", ArrayList.class);
        xStream.processAnnotations(Contratado.class);
        xStream.alias("identificacao", ArrayList.class);
        xStream.processAnnotations(Identificacao.class);
        xStream.alias("profissional", ArrayList.class);
        xStream.processAnnotations(Profissional.class);
        xStream.alias("conselhoProfissional", ArrayList.class);
        xStream.processAnnotations(ConselhoProfissional.class);
        xStream.alias("prestadorExecutante", ArrayList.class);
        xStream.processAnnotations(PrestadorExecutante.class);
        xStream.alias("profissionalExecutanteCompl", ArrayList.class);
        xStream.processAnnotations(ProfissionalExecutanteCompl.class);
        xStream.alias("diagnosticoAtendimento", ArrayList.class);
        xStream.processAnnotations(DiagnosticoAtendimento.class);
        xStream.alias("CID", ArrayList.class);
        xStream.processAnnotations(CID.class);
        xStream.alias("procedimentosRealizados", ArrayList.class);
        xStream.processAnnotations(ProcedimentosRealizados.class);
        xStream.alias("procedimentos", ArrayList.class);
        xStream.processAnnotations(Procedimentos.class);
        xStream.alias("procedimento", ArrayList.class);
        xStream.processAnnotations(Procedimento.class);
        xStream.alias("valorTotal", ArrayList.class);
        xStream.processAnnotations(ValorTotal.class);
        xStream.alias("epilogo", ArrayList.class);
        xStream.processAnnotations(Epilogo.class);





        BufferedReader input = new BufferedReader(new FileReader("c:\\file.xml"));
        ArrayList<Cabecalho> dadosCabecalho = (ArrayList) xStream.fromXML(input);
        input.close();

        for (Cabecalho registro : dadosCabecalho) {
            System.out.println("Versao Padrao: "+registro.getVersaoPadrao()
                    +"Identificacao: "+registro.getIdentificacaoTransacao()
                    +"sequencialTransacao: " + registro.getSequencialTransacao()
                    + "tipoTransacao: " + registro.getTipoTransacao()
                    + "dataRegistroTransacao: " + registro.getDataRegistroTransacao()
                    + "horaRegistroTransacao: " + registro.getHoraRegistroTransacao()
                    + "CNPJ: " + registro.getCNPJ()
                    + "cnpjPagador: " + registro.getCnpjPagador()
                    +""+registro.getCodigoPrestadorNaOperadora());
        }

        ArrayList<IdentificacaoTransacao> dadosIdentificacaoTransacao = (ArrayList) xStream.fromXML(input);
        input.close();

        for (IdentificacaoTransacao registro : dadosIdentificacaoTransacao) {
            System.out.println("tipoTransacao: " + registro.getTipoTransacao()
                    + "sequencialTransacao: " + registro.getSequencialTransacao()
                    + "dataRegistroTransacao: " + registro.getDataRegistroTransacao()
                    + "horaRegistroTransacao: " + registro.getHoraRegistroTransacao());
        }

        ArrayList<Origem> dadosOrigem = (ArrayList) xStream.fromXML(input);
        input.close();

        for (Origem registro : dadosOrigem) {
            System.out.println("CNPJ: " + registro.getCNPJ()
                    +"Codigo prestador na operadora: "+registro.getCodigoPrestadorNaOperadora());
        }

        ArrayList<CodigoPrestadorNaOperadora> dadosPrestadorNaOperadora = (ArrayList) xStream.fromXML(input);
        input.close();

        for (CodigoPrestadorNaOperadora registro : dadosPrestadorNaOperadora) {
            System.out.println("CNPJ: " + registro.getCNPJ());
        }

        ArrayList<Destino> dadosDestino = (ArrayList) xStream.fromXML(input);
        input.close();

        for (Destino registro : dadosDestino) {
            System.out.println("CNPJ Pagador" + registro.getCnpjPagador());
        }

        ArrayList<PrestadorParaOperadora> dadosPresParaOperadora = (ArrayList) xStream.fromXML(input);
        input.close();

        for (PrestadorParaOperadora registro : dadosPresParaOperadora) {
            System.out.println("Numero do lote: " + registro.getNumeroLote());
        }

        ArrayList<LoteGuias> dadosLoteGuias = (ArrayList) xStream.fromXML(input);
        input.close();

        for (LoteGuias registro : dadosLoteGuias) {
            System.out.println("Numero do Lote: " + registro.getNumeroLote());
        }

        ArrayList<Guias> dadosGuias = (ArrayList) xStream.fromXML(input);
        input.close();

        for (Guias registro : dadosGuias) {
            System.out.println("Caracter do atendimento: " + registro.getCaraterAtendimento()
                    + "Data hora atendimento: " + registro.getDataHoraAtendimento()
                    + "Tipo atendimento" + registro.getTipoAtendimento()
                    + "Tipo saida: " + registro.getTipoSaida()
                    + "Observacao: " + registro.getObservacao());

        }

        ArrayList<GuiaFaturamento> dadosGuiaFaturamento = (ArrayList) xStream.fromXML(input);
        input.close();

        for (GuiaFaturamento registro : dadosGuiaFaturamento) {
            System.out.println(
                    "Caracter do atendimento: " + registro.getCaraterAtendimento()
                    + "Data hora atendimento: " + registro.getDataHoraAtendimento()
                    + "Tipo atendimento" + registro.getTipoAtendimento()
                    + "Tipo saida: " + registro.getTipoSaida()
                    + "Observacao: " + registro.getObservacao());
        }

        ArrayList<GuiaSP_SADT> dadosGuiaSP_SADT = (ArrayList) xStream.fromXML(input);
        input.close();

        for (GuiaSP_SADT registro : dadosGuiaSP_SADT) {
            System.out.println(
                    "Caracter do atendimento: " + registro.getCaraterAtendimento()
                    + "Data hora atendimento: " + registro.getDataHoraAtendimento()
                    + "Tipo atendimento" + registro.getTipoAtendimento()
                    + "Tipo saida: " + registro.getTipoSaida()
                    + "Observacao: " + registro.getObservacao());
        }

        ArrayList<IdentificacaoGuiaSADTSP> dadosidGuiaSADTSP = (ArrayList) xStream.fromXML(input);
        input.close();

        for (IdentificacaoGuiaSADTSP registro : dadosidGuiaSADTSP) {
            System.out.println(
                    "dataEmissaoGuia: " + registro.getDataEmissaoGuia()
                    + "numeroGuiaPrestador: " + registro.getNumeroGuiaPrestador()
                    + "numeroGuiaOperadora: " + registro.getNumeroGuiaOperadora());
        }

        ArrayList<IdentificacaoFontePagadora> dadosidFontePagadora = (ArrayList) xStream.fromXML(input);
        input.close();

        for (IdentificacaoFontePagadora registro : dadosidFontePagadora) {
            System.out.println("cnpjFontePagadora" + registro.getCnpjFontePagadora());
        }


        ArrayList<DadosBeneficiario> dadosBeneficiario = (ArrayList) xStream.fromXML(input);
        input.close();

        for (DadosBeneficiario registro : dadosBeneficiario) {
            System.out.println(
                    "Numero Carteira: " + registro.getNumeroCarteira()
                    + "Nome Beneficiario: " + registro.getNomeBeneficiario()
                    + "Nome Plano: " + registro.getNomePlano()
                    + "Validade Carteira: " + registro.getNumeroCarteira());
        }

        ArrayList<DadosSolicitante> dadosSolicitante = (ArrayList) xStream.fromXML(input);
        input.close();

        for (DadosSolicitante registro : dadosSolicitante) {
            System.out.println(
                    "Nome Contratante: " + registro.getNomeContratante()
                    + "Sigla Conselho: " + registro.getSiglaConselho()
                    + "Numero Conselho" + registro.getNumeroConselho()
                    + "uf Conselho: " + registro.getUfConselho());

        }


        ArrayList<Contratado> dadosContratado = (ArrayList) xStream.fromXML(input);
        input.close();

        for (Contratado registro : dadosContratado) {
            System.out.println("Nome Contratado: " + registro.getNomeContratado());

        }


        ArrayList<Identificacao> dadosIdentificacao = (ArrayList) xStream.fromXML(input);
        input.close();

        for (Identificacao registro : dadosIdentificacao) {
            System.out.println(
                    "CPF: " + registro.getCpf()
                    + "CNPJ: " + registro.getCNPJ());
        }


        ArrayList<Profissional> dadosProfissional = (ArrayList) xStream.fromXML(input);
        input.close();

        for (Profissional registro : dadosProfissional) {
            System.out.println(
                    "sigla Conselho: " + registro.getSiglaConselho()
                    + "Numero Conselho" + registro.getNumeroConselho()
                    + "ufConselho" + registro.getUfConselho());
        }

        ArrayList<ConselhoProfissional> dadosConselhoProfissional = (ArrayList) xStream.fromXML(input);
        input.close();

        for (ConselhoProfissional registro : dadosConselhoProfissional) {
            System.out.println("sigla Conselho: " + registro.getSiglaConselho()
                    + "numero Conselho: " + registro.getNumeroConselho()
                    + "ufConselho: " + registro.getUfConselho());

        }


        ArrayList<PrestadorExecutante> dadosPrestExecutantes = (ArrayList) xStream.fromXML(input);
        input.close();

        for (PrestadorExecutante registro : dadosPrestExecutantes) {
            System.out.println("nomeContratado: " + registro.getNomeContratado());
        }

        ArrayList<ProfissionalExecutanteCompl> dadosProfissionalExeCompl = (ArrayList) xStream.fromXML(input);
        input.close();

        for (ProfissionalExecutanteCompl registro : dadosProfissionalExeCompl) {
            System.out.println("nomeExecutante: " + registro.getNomeExecutante());
        }

        ArrayList<DiagnosticoAtendimento> dadosDiagnosticoAtendimento = (ArrayList) xStream.fromXML(input);
        input.close();


        for (DiagnosticoAtendimento registro : dadosDiagnosticoAtendimento) {

            System.out.println("Nome Tabela: " + registro.getNomeTabela()
                    + "Codigo Diagnostico: " + registro.getCodigoDiagnostico());

        }

        ArrayList<CID> dadosCID = (ArrayList) xStream.fromXML(input);
        input.close();

        for (CID registro : dadosCID) {
            System.out.println("Nome Tabela: " + registro.getNomeTabela()
                    + "Codigo diagnostico: " + registro.getCodigoDiagnostico());
        }

        ArrayList<ProcedimentosRealizados> dadosProcRealizados = (ArrayList) xStream.fromXML(input);
        input.close();

        for (ProcedimentosRealizados registro : dadosProcRealizados) {
            System.out.println("Data: " + registro.getData()
                    + "Quantidade Realizada: " + registro.getQuantidadeRealizada()
                    + "valor: " + registro.getValor()
                    + "Valor total: " + registro.getValorTotal());

        }

        ArrayList<Procedimentos> dadosProcedimentos = (ArrayList) xStream.fromXML(input);
        input.close();

        for (Procedimentos registro : dadosProcedimentos) {
            System.out.println("Data: " + registro.getData()
                    + "Quantidade Realizada: " + registro.getQuantidadeRealizada()
                    + "Valor: " + registro.getValor()
                    + "Valor Total: " + registro.getValorTotal());
        }

        ArrayList<Procedimento> dadosProcedimento = (ArrayList) xStream.fromXML(input);
        input.close();

        for (Procedimento registro : dadosProcedimento) {
            System.out.println("codigo: " + registro.getCodigo()
                    + "Tipo Tabela: " + registro.getTipoTabela()
                    + "Descricao: " + registro.getDescricao());
        }

        ArrayList<ValorTotal> dadosValorTotal = (ArrayList) xStream.fromXML(input);
        input.close();

        for (ValorTotal registro : dadosValorTotal) {
            System.out.println("servicos Executados: " + registro.getServicosExecutados()
                    + "taxas: " + registro.getTaxas()
                    + "materiais: " + registro.getMateriais()
                    + "medicamentos: " + registro.getMedicamentos()
                    + "Total Geral: " + registro.getTotalGeral());
        }


        ArrayList<Epilogo> dadosEpilogo = (ArrayList) xStream.fromXML(input);
        input.close();

        for (Epilogo registro : dadosEpilogo) {
            System.out.println("Hash: " + registro.getHash());
        }



    } catch (IOException e) {
        e.printStackTrace();

    }

}[/code]

mas ainda estou obtendo o seguinte erro

[code]run:
Versao Padrao: 2.02.01Identificacao:

Exception in thread “main” java.lang.ClassCastException: br.com.businessflex.model.PrestadorParaOperadora cannot be cast to br.com.businessflex.model.Cabecalho
sequencialTransacao: nulltipoTransacao: nulldataRegistroTransacao: nullhoraRegistroTransacao: nullCNPJ: nullcnpjPagador: nullnull
at br.com.businessflex.controller.DadosXML.imprimirDadosXML(DadosXML.java:90)
at readxml.ReadXML.main(ReadXML.java:22)
Java Result: 1
CONSTRUÍDO COM SUCESSO (tempo total: 0 segundos)
[/code]

parece estar perto do desvendar o erro sera que pode me ajudar?
Debugeui a classe quando sai do primeiro for do cabeçalho acontece o erro :S

Cara, seu erro não é na leitura do xml, e sim uma ClassCastException. Talvez nessa linha: ArrayList<Cabecalho> dadosCabecalho = (ArrayList) xStream.fromXML(input); Talvez nesse seu método algum Cast inválido esteja sendo executado.

Ok e oque sugere que eu possa fazer?

primeiro veja se é isso mesmo.
O que tem na linha 90 da sua classe br.com.businessflex.controller.DadosXML?

No método imprimirDadosXML

É o inicio do for com os dados do cabeçalho

Isso quer dizer que você tem um objeto PrestadorParaOperadora dentro da sua lista de Cabecalho.

Não sei exatamente o que está acontecendo, mas acredito que tenha algo a ver com seu XML, durante a leitura ele pode estar confundindo algo, talvez por algum mapeamento incorreto, não sei dizer.

Pois é… tem mas já especifiquei o campo do PrestadorParaOperadora no cabecalho e ainda assim ele se confunde não sei oque pode estar acontecendo. Oque você acha de tentar parcear com outra ferramenta como jdom ou sax? já utilizou alguma?

não acho que esse seja o problema… o que eu vejo é que quando você faz o fromXML, ele traz tudo, não só o objeto do tipo que você quer… portanto tem N Tipos de objetos nessa lista, não somente Cabecalho e PrestadorParaOperadora,
você precisa ver uma maneira diferente de manipular essa lista, pois a parte de parsear o xml para carregar na memória ja foi feita.

No meu projeto daqui de casa eu fiz essas duas classe aqui talvez te ajude.
Eu parametrizei ela para ler qualquer arquivo xml(Fiz essa classe faz um mês mudaria algumas coisas, talvez fizesse de outra forma. Mas cumpre o que promete).

[code]

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.List;

import javax.swing.JFileChooser;

public class SeletorXML {
private Class classe;

public SeletorXML(Class classe) {
	super();
	this.classe = classe;
}

public List<E> escolheXML(){
	List<E> negocios=null;
	try {
		JFileChooser fileChooser = new JFileChooser();
		int status = fileChooser.showOpenDialog(null);
		
		if(status==JFileChooser.APPROVE_OPTION){
			FileReader fileReader = new FileReader(fileChooser.getSelectedFile());
			negocios=new LeitorXML<E>().carrega(fileReader,classe);
		}else{
			negocios=new ArrayList<E>();
		}

	} catch (FileNotFoundException e) {
		e.printStackTrace();
	}
	return negocios;
}

}[/code]


public class LeitorXML<E> {

	public List<E> carrega(FileReader fonte,Class classe) {
		XStream xStream = new XStream(new DomDriver());
		xStream.alias(classe.getSimpleName().toLowerCase(), classe);
		return(List<E>)xStream.fromXML(fonte);
	}

}

Isso é tudo que vc precisa para fazer sua classe seletora e leitora de xml trabalhar com qualquer coisa.
Acho que não precisa de muita coisa para fazer ela criar xml.
Joga essas três em um pacote Util e ta feito.

Acabei de fazer um gerador para qualquer classe.

import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;

public class GeradorAleatorioDeXML<E> {
	
	E obj;
	public GeradorAleatorioDeXML(E obj){
		this.obj=obj;
	}
			
	public  void  geraXML(){
		try {
			XStream stream = new XStream(new DomDriver());
			String nomeClasse = obj.getClass().getSimpleName();
			stream.alias(nomeClasse,obj.getClass() );
			stream.setMode(XStream.NO_REFERENCES);
			
			PrintStream out = new PrintStream(new File(nomeClasse+".xml"));
			out.println(stream.toXML(obj));
			
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
	}

}

Agora é só vc adaptar para as suas necessidades.

Como o digão neves disse
Vc esta trabalhando com lista de vários objetos.

Meu código não irá funcionar com isso.

xStream.alias(“mensagemTISS”, ArrayList.class);
xStream.alias(“cabecalho”, ArrayList.class);
xStream.processAnnotations(Cabecalho.class);
xStream.alias(“identificacaoTransacao”, ArrayList.class);

nessa linha
BufferedReader input = new BufferedReader(new FileReader(“c:\file.xml”));
ArrayList dadosCabecalho = (ArrayList) xStream.fromXML(input);
input.close();

mas lá encima sua primeira linha é mensagemTISS.

A não ser que a ordem não importe e ele se vire para achar.
talvez isso te ajude:
http://mballem.wordpress.com/2011/05/12/manipulando-arquivo-xml-%E2%80%93-parte-iii-xstream/

Fiz funcionar desculpe pela demora.

Mas não vai ser algo tão trivial quanto vc esta pensando.

vc tem que capturar um object.

No xml o nó raiz costuma ser o tipo da classe.

<Negocio> <preco>3.99</preco> <quantidade>5</quantidade> <data> <time>1338918043119</time> <timezone>America/Sao_Paulo</timezone> </data> </Negocio>

Nesse caso negócio é o nó raiz.

Tem três classes principais e essas devem ser devidamente
mapeadas.

Vc tem que criar uma classe que contenha cabeçalho,prestadora e epilogo
classe principal. O tipo xStream lhe devolverá esse tipo principal
e mapear as outras de forma correta.

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.caelum.argentum.writer;

import com.thoughtworks.xstream.annotations.XStreamAlias;

/**
 *
 * @author vinicius
 */
@XStreamAlias("cabecalho")
public class Cabecalho {

    @XStreamAlias("destino")
    private String destino;
    @XStreamAlias("origem")
    private Origem origem;
    @XStreamAlias("identificacaoTransacao")
    private IdentificacaoTransacao identificacaoTransacao;
    @XStreamAlias("varsaoPadrao")
    private String versaoPadrao;
    @XStreamAlias("sequencialTransacao")
    private String sequencialTransacao;
    @XStreamAlias("tipoTransacao")
    private String tipoTransacao;
    @XStreamAlias("dataRegistroTransacao")
    private String dataRegistroTransacao;
    @XStreamAlias("horaRegistroTransacao")
    private String horaRegistroTransacao;
    @XStreamAlias("CNPJ")
    private String CNPJ;
    @XStreamAlias("cnpjPagador")
    private String cnpjPagador;
    @XStreamAlias("codigoPrestadorNaOperadora")
    private String codigoPrestadorNaOperadora;

    /**
     * @return the destino
     */
    public String getDestino() {
        return destino;
    }

    /**
     * @param destino the destino to set
     */
    public void setDestino(String destino) {
        this.destino = destino;
    }

    /**
     * @return the origem
     */
    public Origem getOrigem() {
        return origem;
    }

    /**
     * @param origem the origem to set
     */
    public void setOrigem(Origem origem) {
        this.origem = origem;
    }

    /**
     * @return the identificacaoTransacao
     */
    public IdentificacaoTransacao getIdentificacaoTransacao() {
        return identificacaoTransacao;
    }

    /**
     * @param identificacaoTransacao the identificacaoTransacao to set
     */
    public void setIdentificacaoTransacao(IdentificacaoTransacao identificacaoTransacao) {
        this.identificacaoTransacao = identificacaoTransacao;
    }

    /**
     * @return the versaoPadrao
     */
    public String getVersaoPadrao() {
        return versaoPadrao;
    }

    /**
     * @param versaoPadrao the versaoPadrao to set
     */
    public void setVersaoPadrao(String versaoPadrao) {
        this.versaoPadrao = versaoPadrao;
    }

    /**
     * @return the sequencialTransacao
     */
    public String getSequencialTransacao() {
        return sequencialTransacao;
    }

    /**
     * @param sequencialTransacao the sequencialTransacao to set
     */
    public void setSequencialTransacao(String sequencialTransacao) {
        this.sequencialTransacao = sequencialTransacao;
    }

    /**
     * @return the tipoTransacao
     */
    public String getTipoTransacao() {
        return tipoTransacao;
    }

    /**
     * @param tipoTransacao the tipoTransacao to set
     */
    public void setTipoTransacao(String tipoTransacao) {
        this.tipoTransacao = tipoTransacao;
    }

    /**
     * @return the dataRegistroTransacao
     */
    public String getDataRegistroTransacao() {
        return dataRegistroTransacao;
    }

    /**
     * @param dataRegistroTransacao the dataRegistroTransacao to set
     */
    public void setDataRegistroTransacao(String dataRegistroTransacao) {
        this.dataRegistroTransacao = dataRegistroTransacao;
    }

    /**
     * @return the horaRegistroTransacao
     */
    public String getHoraRegistroTransacao() {
        return horaRegistroTransacao;
    }

    /**
     * @param horaRegistroTransacao the horaRegistroTransacao to set
     */
    public void setHoraRegistroTransacao(String horaRegistroTransacao) {
        this.horaRegistroTransacao = horaRegistroTransacao;
    }

    /**
     * @return the CNPJ
     */
    public String getCNPJ() {
        return CNPJ;
    }

    /**
     * @param CNPJ the CNPJ to set
     */
    public void setCNPJ(String CNPJ) {
        this.CNPJ = CNPJ;
    }

    /**
     * @return the cnpjPagador
     */
    public String getCnpjPagador() {
        return cnpjPagador;
    }

    /**
     * @param cnpjPagador the cnpjPagador to set
     */
    public void setCnpjPagador(String cnpjPagador) {
        this.cnpjPagador = cnpjPagador;
    }

    /**
     * @return the codigoPrestadorNaOperadora
     */
    public String getCodigoPrestadorNaOperadora() {
        return codigoPrestadorNaOperadora;
    }

    /**
     * @param codigoPrestadorNaOperadora the codigoPrestadorNaOperadora to set
     */
    public void setCodigoPrestadorNaOperadora(String codigoPrestadorNaOperadora) {
        this.codigoPrestadorNaOperadora = codigoPrestadorNaOperadora;
    }
}

Viu que mapiei o objeto e não uma String. Outra forma era vc reescrever o toString de cada objeto colocando
o que vc quer e anotando ele para facilitar sua vida.

Não estou obtendo sucesso aqui estou tentando de diversas maneiras assim que conseguir lhe dou um tok

<cabecalho> <identificacaoTransacao> <tipoTransacao>ENVIO_LOTE_GUIAS</tipoTransacao> <sequencialTransacao>339344</sequencialTransacao> <dataRegistroTransacao>2012-05-11</dataRegistroTransacao> <horaRegistroTransacao>09:00:00</horaRegistroTransacao> </identificacaoTransacao> <origem> <codigoPrestadorNaOperadora> <CNPJ>60840055017530</CNPJ> </codigoPrestadorNaOperadora> </origem> <destino> <cnpjPagador>92958990000193</cnpjPagador> </destino> <versaoPadrao>2.02.01</versaoPadrao> </cabecalho>

No exemplo acima seu cabeçalho tem 4 objetos que devem ser mapiados
como Objetos na classe cabeçalho.

[color=red]Quanto a classe PrestadorExecutante(atributo profissionalExecutanteCompl) estava faltando um get Em uma das suas anotações creio que isso tenha causado o erro.
Se vc criar um toString com os dados que vc quer para cada objeto mapear acho que já facilita
[/color]