Nfe Xml Annotation retEnvEvento

7 respostas
E

Olá Pessoal.

Estou enviando uma NFe de cancelamento como Evento e o retorno é do tipo retEnvEvento.

Tem como eu criar um arquivo java usando javax.xml.bind.annotation através dos schema ?

Obrigado

Eduardo

7 Respostas

A

Claro. Dê uma olhada no utilitário xjc (que vem junto com a JDK). Ele faz a geração dos arquivos através dos XML Schemas.

[]'s

E

Perfeito Alexandre.

Seguindo hehhe

Resultou num erro :

JAXBContext context = JAXBContext.newInstance(TRetEnvEvento.class);
        Unmarshaller unmarshaller = context.createUnmarshaller();
        JAXBElement<TRetEnvEvento> retcanc = (JAXBElement<TRetEnvEvento>) unmarshaller.unmarshal(new StringReader(retEnvEvento));

"elemento inesperado (uri:"", local:"retEnvEvento"). Os elementos esperados são (none)"

Meu retorno

<retEnvEvento  versao="1.00"><idLote>1</idLote><tpAmb>2</tpAmb><verAplic>1</verAplic><cOrgao>43</cOrgao><cStat>128</cStat><xMotivo>Lote de Evento Processado</xMotivo><retEvento versao="1.00"><infEvento Id="ID1"><tpAmb>2</tpAmb><verAplic>1</verAplic><cOrgao>43</cOrgao><cStat>135</cStat><xMotivo>Evento registrado e vinculado a NF-e</xMotivo><chNFe>1</chNFe><tpEvento>110111</tpEvento><nSeqEvento>1</nSeqEvento><CNPJDest>99999999000191</CNPJDest><dhRegEvento>2013-04-17T09:37:57-03:00</dhRegEvento><nProt>1</nProt></infEvento></retEvento></retEnvEvento>
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "TRetEnvEvento", namespace = "http://www.portalfiscal.inf.br/nfe", propOrder = {
    "idLote",
    "tpAmb",
    "verAplic",
    "cOrgao",
    "cStat",
    "xMotivo",
    "retEvento"
})
public class TRetEnvEvento {

    @XmlElement(required = true)
    protected String idLote;
    @XmlElement(required = true)
    protected String tpAmb;
    @XmlElement(required = true)
    protected String verAplic;
    @XmlElement(required = true)
    protected String cOrgao;
    @XmlElement(required = true)
    protected String cStat;
    @XmlElement(required = true)
    protected String xMotivo;
    protected List<TRetEvento> retEvento;
    @XmlAttribute(required = true)
    protected String versao;
A

No seu caso, especificamente, faltou só colocar @XmlRootElement na classe.

[]'s

E

O erro mudou.

“elemento inesperado (uri:”", local:“retEnvEvento”). Os elementos esperados são <{http://www.w3.org/2000/09/xmldsig#}retEnvEvento>"

@XmlRootElement(name="retEnvEvento")
public class TRetEnvEvento {
A

Se fosse outro namespace, eu te diria que era só modificar a anotação @XmlRootElement com o namespace novo. Mas esse, especificamente, é de assinatura de XML’s… tem certeza de que a estrutura está certa?

[]'s

B

Caso não consiga, dê uma olhada no Xstream, acho ele mais simples.

http://xstream.codehaus.org/tutorial.html

A

boberson:
Caso não consiga, dê uma olhada no Xstream, acho ele mais simples.

http://xstream.codehaus.org/tutorial.html

Não é possível usar XStream com JAX-WS (não sei dizer quanto ao Axis).

[]'s

Criado 17 de abril de 2013
Ultima resposta 18 de abr. de 2013
Respostas 7
Participantes 3