Eu tenho um esquema xsd, e foi utilizado Jaxb2 para gerar as classes do esquema…
Tenho também um form.xml preenchido com dados de acordo com o esquema xsd…
Como utilizo o Jaxb2Marshaller para fazer o unmarshall do meu xml e popular novas instâncias das classes do esquema?
Agradeço orientações a respeito, ou uma referência que ensine exatamente como fazer… não deve ser muito mais complicado do que a minha tentativa de implementação (eu espero)…
Tentei o abaixo, mas está dando NullPointerException… o array de bytes não é nulo, o conteúdo é válido (eu gravei em um arquivo em disco usando FileOutputStream e o arquivo foi restaurado corretamente), o marshaller também não fica nulo… o erro ocorre na linha comentada.
[code] private Object unmarshallJaxb2XML(byte[] xmlBytes) throws Exception {
Source xmlSource = XMLUtils.getXmlSource(xmlBytes); // OK
Jaxb2Marshaller marshaller = new Jaxb2Marshaller(); // OK (não retorna nulo)
Object objectGraph = marshaller.unmarshal(xmlSource); // ERRO: java.lang.NullPointerException
return objectGraph;
}
private Source getXmlSource(byte[] xmlBytes) {
ByteArrayInputStream bytesIn = new ByteArrayInputStream(xmlBytes);
StreamSource streamSource = new StreamSource(bytesIn);
return streamSource;
}[/code]
Obrigado!