Prezados,
estou tendo um problema em pegar um xml e tetar transforma-lo em objetos com o xstream. Eu tenho um arquivo xml passo ele para dentro do objeto mas quando vou escrever o seu conteudo (em formato xml) este aparece totalmente sem os valores, parece que o xstream somente instancia os objetos. segue o codigo para conferencia.
classe que renderiza:
public class RenderToXML {
public static String toXML(String nomeQuestionario, int idUsuario, String arqQuest) throws Exception {
String path = RenderToXML.class.getResource("/").getPath() + "br/gov/inca/rbtmo/layout/xml/";
BufferedReader in = new BufferedReader(new FileReader(path.replaceAll("%20", " ") + nomeQuestionario));
StringBuffer buf = new StringBuffer();
String str;
while ((str = in.readLine()) != null) {
buf.append(str);
}
in.close();
XStream xStream = new XStream(new DomDriver());
Class[] classes = {Formulario.class, Pagina.class, Pergunta.class, Opcao.class, TextoIdioma.class, TextoOpcao.class, TextoPergunta.class};
xStream.processAnnotations(classes);
xStream.autodetectAnnotations(true);
Formulario formulario = (Formulario) xStream.fromXML(buf.toString());
for (Pagina pagina : formulario.getPaginas()) {
for (Pergunta pergunta : pagina.getPerguntas()) {
pergunta.pegarRespostasBanco();
}
}
return xStream.toXML(formulario);
}
}
codigo xml:
<?xml version="1.0" encoding="UTF-8"?>
<formulario nome="2005-HLA" id="2626421" versao="2.0">
<pagina id="1" nome="KEY">
<pergunta id="PCAB1" nome="PCAB1" tipoTela="text" tipoDado="NUMERO">
<texto-pergunta idioma="ingles">CIBMTR Center Number:</texto-pergunta>
</pergunta>
</pagina>
</formulario>
resultado gerado:
<formulario>
<id>0</id>
<pagina>
<id>0</id>
<pergunta>
<pagina-html>0</pagina-html>
<pagina-pdf>0</pagina-pdf>
<sequencia>0</sequencia>
<texto-pergunta/>
</pergunta>
</pagina>
</formulario>
vlw galera… desde já agradeço.