Tirar caractteres especias de XML

Ola …

Boa tarde a todos
Estou desenvolvendo um sistema , onde carrego as classes a partir de um
xml usando JAXB mas estou tendo problemas com caracteres especias.
Alguem sabe se o JAXB tem alguma função pra tratar esses caracteres ?

desde já agradeço,
Juliano Ribeiro

public static String semAcento(String txt) {
        String s="";
        for (int i = 0; i < txt.length(); i++) {
           char c=txt.charAt(i);
           switch (c) {
             case 'Á':
             case 'À':
             case 'Ã':
               c='A';
               break;
             case 'É':
             case 'Ê':
               c='E';
               break;
             case 'Í':
               c='I';
               break;
             case 'Ó':
             case 'Õ':
             case 'Ô':
               c='O';
               break;
             case 'Ú':
               c='U';
               break;
             case 'Ç':
               c='C';

             case 'á':
             case 'à':
             case 'ã':
               c='a';
               break;
             case 'é':
             case 'ê':
               c='e';
               break;
             case 'í':
               c='i';
               break;
             case 'ó':
             case 'õ':
             case 'ô':
               c='o';
               break;
             case 'ú':
               c='u';
               break;
             case 'ç':
               c='c';
               break;
           }
           s+=c;
        }
        return s;
      }

Seria melhor entender o problema ao inves de simplesmente arrancar os caracteres de lá. Provavelmente é encoding que vc não esta tratando direito, mas sem ver o problema fica dificil.

Sem falar que vc pode estar mascarando o problema, tipo outra parte do sistema pode estar com algum comportamento anômalo (tipo convertendo UTF-8 pra Latin1 quando não deveria) e vc não percebeu.

eu testei tirando os caracteres e deu certo, obrigado,
mas quando gero o xml pelo marshaller ele gera certo e tem uma configuração de
encoding e imaginei que na leitura tb deveria ter

esse é o codifo que uso pra gerar o xml

       String teste = "";
       JAXBContext context = JAXBContext.newInstance(st.getClass());
       Marshaller marshaller = context.createMarshaller();
       marshaller.marshal(st, System.out);
       marshaller.marshal(st, new FileWriter("c:/envio.xml")); 

e esse é o codigo que uso pra ler o xml

             JAXBContext context = JAXBContext.newInstance("br.inf.portalfiscal.nfe");
             Unmarshaller unmarshaller = context.createUnmarshaller();


             Object obj = unmarshaller.unmarshal(new File("c:/testeret.xml"));

             TRetConsSitNFe ind2 = ( TRetConsSitNFe)obj;