diff --git a/src/main/java/com/fincatto/documentofiscal/mdfe3/classes/MDFAutorizador3.java b/src/main/java/com/fincatto/documentofiscal/mdfe3/classes/MDFAutorizador3.java index 97e943fbe..135416172 100644 --- a/src/main/java/com/fincatto/documentofiscal/mdfe3/classes/MDFAutorizador3.java +++ b/src/main/java/com/fincatto/documentofiscal/mdfe3/classes/MDFAutorizador3.java @@ -26,6 +26,13 @@ public String getMDFeRecepcao(DFAmbiente ambiente) { ? "https://mdfe-homologacao.svrs.rs.gov.br/ws/MDFerecepcao/MDFeRecepcao.asmx" : "https://mdfe.svrs.rs.gov.br/ws/MDFerecepcao/MDFeRecepcao.asmx"; } + + @Override + public String getMDFeRecepcaoSinc(DFAmbiente ambiente) { + return DFAmbiente.HOMOLOGACAO.equals(ambiente) + ? "https://mdfe-homologacao.svrs.rs.gov.br/ws/MDFeRecepcaoSinc/MDFeRecepcaoSinc.asmx" + : "https://mdfe.svrs.rs.gov.br/ws/MDFeRecepcaoSinc/MDFeRecepcaoSinc.asmx"; + } @Override public String getMDFeRetornoRecepcao(DFAmbiente ambiente) { @@ -69,6 +76,8 @@ public DFUnidadeFederativa[] getUFs() { }; public abstract String getMDFeRecepcao(final DFAmbiente ambiente); + + public abstract String getMDFeRecepcaoSinc(final DFAmbiente ambiente); public abstract String getMDFeRetornoRecepcao(final DFAmbiente ambiente); diff --git a/src/main/java/com/fincatto/documentofiscal/mdfe3/classes/nota/envio/MDFEnvioRetorno.java b/src/main/java/com/fincatto/documentofiscal/mdfe3/classes/nota/envio/MDFEnvioRetorno.java new file mode 100644 index 000000000..2a9b47a3f --- /dev/null +++ b/src/main/java/com/fincatto/documentofiscal/mdfe3/classes/nota/envio/MDFEnvioRetorno.java @@ -0,0 +1,118 @@ +package com.fincatto.documentofiscal.mdfe3.classes.nota.envio; + +import org.simpleframework.xml.Attribute; +import org.simpleframework.xml.Element; +import org.simpleframework.xml.Namespace; +import org.simpleframework.xml.Root; + +import com.fincatto.documentofiscal.DFAmbiente; +import com.fincatto.documentofiscal.DFBase; +import com.fincatto.documentofiscal.DFUnidadeFederativa; +import com.fincatto.documentofiscal.mdfe3.classes.MDFProtocolo; + +/** + * Created by Edivaldo Merlo Stens on 29/05/24. Retorno do envio do MDF-e. + */ +@Root(name = "retMDFe") +@Namespace(reference = "http://www.portalfiscal.inf.br/mdfe") +public class MDFEnvioRetorno extends DFBase { + private static final long serialVersionUID = -1891312937948557486L; + + @Element(name = "tpAmb", required = false) + private DFAmbiente ambiente; + + @Element(name = "cUF", required = false) + private DFUnidadeFederativa uf; + + @Element(name = "verAplic", required = false) + private String versaoAplicacao; + + @Element(name = "cStat", required = false) + private String status; + + @Element(name = "xMotivo", required = false) + private String motivo; + + @Element(name = "protMDFe", required = false) + private MDFProtocolo mdfProtocolo; + + @Attribute(name = "versao", required = false) + private String versao; + + public DFAmbiente getAmbiente() { + return this.ambiente; + } + + /** + * Identificação do Ambiente:1 - Produção; 2 - Homologação + */ + public void setAmbiente(final DFAmbiente ambiente) { + this.ambiente = ambiente; + } + + public DFUnidadeFederativa getUf() { + return this.uf; + } + + /** + * Identificação da UF + */ + public void setUf(final DFUnidadeFederativa uf) { + this.uf = uf; + } + + public String getVersaoAplicacao() { + return this.versaoAplicacao; + } + + /** + * Versão do Aplicativo que recebeu o Lote. + */ + public void setVersaoAplicacao(final String versaoAplicacao) { + this.versaoAplicacao = versaoAplicacao; + } + + public String getStatus() { + return this.status; + } + + /** + * Código do status da mensagem enviada. + */ + public void setStatus(final String status) { + this.status = status; + } + + public String getMotivo() { + return this.motivo; + } + + /** + * Descrição literal do status do serviço solicitado. + */ + public void setMotivo(final String motivo) { + this.motivo = motivo; + } + + public MDFProtocolo getMdfProtocolo() { + return this.mdfProtocolo; + } + + /** + * Dados do Recibo do Lote + */ + public void setMdfProtocolo(final MDFProtocolo mdfProtocolo) { + this.mdfProtocolo = mdfProtocolo; + } + + public String getVersao() { + return this.versao; + } + + /** + * versão da aplicação + */ + public void setVersao(final String versao) { + this.versao = versao; + } +} diff --git a/src/main/java/com/fincatto/documentofiscal/mdfe3/classes/nota/envio/MDFEnvioRetornoDados.java b/src/main/java/com/fincatto/documentofiscal/mdfe3/classes/nota/envio/MDFEnvioRetornoDados.java new file mode 100644 index 000000000..660bb57ff --- /dev/null +++ b/src/main/java/com/fincatto/documentofiscal/mdfe3/classes/nota/envio/MDFEnvioRetornoDados.java @@ -0,0 +1,29 @@ +package com.fincatto.documentofiscal.mdfe3.classes.nota.envio; + +import com.fincatto.documentofiscal.DFBase; +import com.fincatto.documentofiscal.mdfe3.classes.nota.MDFe; + +/** + * Created by Edivaldo Merlo Stens on 29/05/24. + * + * Retorno do envio de MDF-e. + * + */ +public class MDFEnvioRetornoDados extends DFBase { + + private final MDFEnvioRetorno retorno; + private final MDFe mdfeAssinado; + + public MDFEnvioRetornoDados(MDFEnvioRetorno retorno, MDFe mdfeAssinado) { + this.retorno = retorno; + this.mdfeAssinado = mdfeAssinado; + } + + public MDFEnvioRetorno getRetorno() { + return retorno; + } + + public MDFe getMDFEAssinado() { + return mdfeAssinado; + } +} diff --git a/src/main/java/com/fincatto/documentofiscal/mdfe3/webservices/WSFacade.java b/src/main/java/com/fincatto/documentofiscal/mdfe3/webservices/WSFacade.java index 1b7079ed9..faf0b0ebe 100644 --- a/src/main/java/com/fincatto/documentofiscal/mdfe3/webservices/WSFacade.java +++ b/src/main/java/com/fincatto/documentofiscal/mdfe3/webservices/WSFacade.java @@ -1,260 +1,280 @@ -package com.fincatto.documentofiscal.mdfe3.webservices; - -import com.fincatto.documentofiscal.DFUnidadeFederativa; -import com.fincatto.documentofiscal.mdfe3.MDFeConfig; -import com.fincatto.documentofiscal.mdfe3.classes.consultaRecibo.MDFeConsultaReciboRetorno; -import com.fincatto.documentofiscal.mdfe3.classes.consultanaoencerrados.MDFeConsultaNaoEncerradosRetorno; -import com.fincatto.documentofiscal.mdfe3.classes.consultastatusservico.MDFeConsStatServRet; -import com.fincatto.documentofiscal.mdfe3.classes.lote.envio.MDFEnvioLote; -import com.fincatto.documentofiscal.mdfe3.classes.lote.envio.MDFEnvioLoteRetornoDados; -import com.fincatto.documentofiscal.mdfe3.classes.nota.MDFInfoModalRodoviarioInfPag; -import com.fincatto.documentofiscal.mdfe3.classes.nota.MDFInfoModalRodoviarioInfViagens; -import com.fincatto.documentofiscal.mdfe3.classes.nota.consulta.MDFeNotaConsultaRetorno; -import com.fincatto.documentofiscal.mdfe3.classes.nota.evento.MDFeEnviaEventoIncluirDFeInfDoc; -import com.fincatto.documentofiscal.mdfe3.classes.nota.evento.MDFeRetorno; -import com.fincatto.documentofiscal.utils.DFSocketFactory; -import org.apache.commons.httpclient.protocol.Protocol; - -import java.io.IOException; -import java.security.KeyManagementException; -import java.security.KeyStoreException; -import java.security.NoSuchAlgorithmException; -import java.security.UnrecoverableKeyException; -import java.security.cert.CertificateException; -import java.time.LocalDate; -import java.util.List; - -public class WSFacade { - - private final WSStatusConsulta wsStatusConsulta; - private final WSRecepcaoLote wsRecepcaoLote; - private final WSNotaConsulta wsNotaConsulta; - private final WSCancelamento wsCancelamento; - private final WSEncerramento wsEncerramento; - private final WSConsultaRecibo wsConsultaRecibo; - private final WSConsultaNaoEncerrados wsConsultaNaoEncerrados; - private final WSIncluirCondutor wsIncluirCondutor; - private final WSIncluirDFe wsIncluirDFe; - private final WSPagamentoTransporte wsPagamentoTransporte; - -// private final WSRecepcaoLoteRetorno wsRecepcaoLoteRetorno; - public WSFacade(final MDFeConfig config) throws IOException, KeyManagementException, UnrecoverableKeyException, KeyStoreException, NoSuchAlgorithmException, CertificateException { - Protocol.registerProtocol("https", new Protocol("https", new DFSocketFactory(config), 443)); - this.wsStatusConsulta = new WSStatusConsulta(config); - this.wsRecepcaoLote = new WSRecepcaoLote(config); -// this.wsRecepcaoLoteRetorno = new WSRecepcaoLoteRetorno(config); - this.wsNotaConsulta = new WSNotaConsulta(config); - this.wsCancelamento = new WSCancelamento(config); - this.wsEncerramento = new WSEncerramento(config); - this.wsConsultaRecibo = new WSConsultaRecibo(config); - this.wsConsultaNaoEncerrados = new WSConsultaNaoEncerrados(config); - this.wsIncluirCondutor = new WSIncluirCondutor(config); - this.wsIncluirDFe = new WSIncluirDFe(config); - this.wsPagamentoTransporte = new WSPagamentoTransporte(config); - } - - /** - * Faz o envio do lote para a SEFAZ - * - * @param mdfEnvioLote a ser eviado para a SEFAZ - * @return dados do retorno do envio do lote e o xml assinado - * @throws Exception caso nao consiga gerar o xml ou problema de conexao com - * o sefaz - * - */ - public MDFEnvioLoteRetornoDados envioRecepcaoLote(MDFEnvioLote mdfEnvioLote) throws Exception { - return this.wsRecepcaoLote.envioRecepcao(mdfEnvioLote); - } - - /** - * Faz a consulta de status responsavel pela UF, no caso apenas o RS está - * disponível - * - * @param uf uf UF que deseja consultar o status do sefaz responsavel - * @return dados da consulta de status retornado pelo webservice - * @throws Exception caso nao consiga gerar o xml ou problema de conexao com - * o sefaz - */ - public MDFeConsStatServRet consultaStatus(final DFUnidadeFederativa uf) throws Exception { - return this.wsStatusConsulta.consultaStatus(uf); - } - - /** - * @see #consultaStatus(DFUnidadeFederativa) - * @return - * @throws Exception - */ - public MDFeConsStatServRet consultaStatus() throws Exception { - return this.wsStatusConsulta.consultaStatus(DFUnidadeFederativa.RS); - } - - /** - * Faz a consulta do MDF-e - * - * @param chaveDeAcesso chave de acesso do MDF-e - * @return dados da consulta da nota retornado pelo webservice - * @throws Exception caso nao consiga gerar o xml ou problema de conexao com - * o sefaz - */ - public MDFeNotaConsultaRetorno consultaMdfe(final String chaveDeAcesso) throws Exception { - return this.wsNotaConsulta.consultaNota(chaveDeAcesso); - } - - /** - * Faz o cancelamento do MDFe - * - * @param chave chave de acesso da nota - * @param numeroProtocolo numero do protocolo da nota - * @param motivo motivo do cancelamento - * @return dados do cancelamento da nota retornado pelo webservice - * @throws Exception caso nao consiga gerar o xml ou problema de conexao com - * o sefaz - */ - public MDFeRetorno cancelaMdfe(final String chave, final String numeroProtocolo, final String motivo) throws Exception { - return this.wsCancelamento.cancelaNota(chave, numeroProtocolo, motivo); - } - - /** - * Faz o cancelamento da nota com evento ja assinado ATENCAO: Esse metodo - * deve ser utilizado para assinaturas A3 - * - * @param chave chave de acesso da nota - * @param eventoAssinadoXml evento ja assinado em formato XML - * @return dados do cancelamento da nota retornado pelo webservice - * @throws Exception caso nao consiga gerar o xml ou problema de conexao com - * o sefaz - */ - public MDFeRetorno cancelaMdfeAssinado(final String chave, final String eventoAssinadoXml) throws Exception { - return this.wsCancelamento.cancelaNotaAssinada(chave, eventoAssinadoXml); - } - - /** - * Faz o encerramento do MDFe - * - * @param chaveAcesso chave de acesso da nota - * @param numeroProtocolo numero do protocolo da nota - * @param codigoMunicipio Informar o código do município do encerramento do - * manifesto - * @param dataEncerramento Data em que o manifesto foi encerrado. - * @param unidadeFederativa Informar a UF de encerramento do manifesto - * @return dados do encerramento da nota retornado pelo webservice - * @throws Exception caso nao consiga gerar o xml ou problema de conexao com - * o sefaz - */ - public MDFeRetorno encerramento(final String chaveAcesso, final String numeroProtocolo, - final String codigoMunicipio, final LocalDate dataEncerramento, final DFUnidadeFederativa unidadeFederativa) throws Exception { - return this.wsEncerramento.encerraMdfe(chaveAcesso, numeroProtocolo, codigoMunicipio, dataEncerramento, unidadeFederativa); - } - - /** - * Faz o encerramento do MDFe assinado - * - * @param chaveAcesso - * @param eventoAssinadoXml - * @return - * @throws Exception - */ - public MDFeRetorno encerramentoAssinado(final String chaveAcesso, final String eventoAssinadoXml) throws Exception { - return this.wsEncerramento.encerramentoMdfeAssinado(chaveAcesso, eventoAssinadoXml); - } - - /** - * Faz a consulta do recibo do MDF-e - * - * @param numeroRecibo recibo do processamento do arquivo MDF-e - * @return dados da consulta da nota retornado pelo webservice - * @throws Exception caso nao consiga gerar o xml ou problema de conexao com - * o sefaz - */ - public MDFeConsultaReciboRetorno consultaRecibo(final String numeroRecibo) throws Exception { - return this.wsConsultaRecibo.consultaRecibo(numeroRecibo); - } - - /** - * Faz a consulta do recibo do MDF-e - * - * @param cnpj CNPJ do Emitente do MDF-e - * @return Retorno de Pedido de Consulta MDF-e não Encerrados - * @throws Exception caso nao consiga gerar o xml ou problema de conexao com - * o sefaz - */ - public MDFeConsultaNaoEncerradosRetorno consultaNaoEncerrados(final String cnpj) throws Exception { - return this.wsConsultaNaoEncerrados.consultaNaoEncerrados(cnpj); - } - - /** - * Faz a inclusão de condutor do veículo de MDF-e Rodoviário. - * - * @param chaveAcesso - * @param nomeCondutor - * @param cpfCondutor - * @return - * @throws Exception - */ - public MDFeRetorno incluirCondutor(final String chaveAcesso, final String nomeCondutor, final String cpfCondutor) throws Exception { - return this.wsIncluirCondutor.incluirCondutor(chaveAcesso, nomeCondutor, cpfCondutor); - } - - /** - * Faz a inclusão de condutor do veículo de MDF-e Rodoviário evento assinado - * - * @param chaveAcesso - * @param eventoAssinadoXml - * @return - * @throws Exception - */ - public MDFeRetorno incluirCondutorAssinado(final String chaveAcesso, final String eventoAssinadoXml) throws Exception { - return this.wsIncluirCondutor.incluirCondutorAssinado(chaveAcesso, eventoAssinadoXml); - } - - /** - * Faz a inclusão de DF-e no MDF-e Rodoviário. - * - * @param chaveAcesso - * @param nomeCondutor - * @param cpfCondutor - * @return - * @throws Exception - */ - public MDFeRetorno incluirDFe(final String chaveAcesso, final String nProt, final String cMunCarrega, final String xMunCarrega, final List infDoc) throws Exception { - return this.wsIncluirDFe.incluirDFe(chaveAcesso, nProt, cMunCarrega, xMunCarrega, infDoc); - } - - /** - * Faz a inclusão de DF-e no MDF-e Rodoviário evento assinado - * - * @param chaveAcesso - * @param eventoAssinadoXml - * @return - * @throws Exception - */ - public MDFeRetorno incluirDFeAssinado(final String chaveAcesso, final String eventoAssinadoXml) throws Exception { - return this.wsIncluirDFe.incluirDFeAssinado(chaveAcesso, eventoAssinadoXml); - } - - /** - * Faz o evento de Pagamento da Operação de Transporte. - * - * @param chaveAcesso - * @param nProt - * @param infPag - * @param infViagens - * @return - * @throws Exception - */ - public MDFeRetorno pagamentoTransporte(final String chaveAcesso, final String nProt, final List infPag, final List infViagens) throws Exception { - return this.wsPagamentoTransporte.pagamento(chaveAcesso, nProt, infPag, infViagens); - } - - /** - * Faz o evento de Pagamento da Operação de Transporte assinado. - * - * @param chaveAcesso - * @param eventoAssinadoXml - * @return - * @throws Exception - */ - public MDFeRetorno pagamentoTransporteAssinado(final String chaveAcesso, final String eventoAssinadoXml) throws Exception { - return this.wsPagamentoTransporte.pagamentoAssinado(chaveAcesso, eventoAssinadoXml); - } -} +package com.fincatto.documentofiscal.mdfe3.webservices; + +import com.fincatto.documentofiscal.DFUnidadeFederativa; +import com.fincatto.documentofiscal.mdfe3.MDFeConfig; +import com.fincatto.documentofiscal.mdfe3.classes.consultaRecibo.MDFeConsultaReciboRetorno; +import com.fincatto.documentofiscal.mdfe3.classes.consultanaoencerrados.MDFeConsultaNaoEncerradosRetorno; +import com.fincatto.documentofiscal.mdfe3.classes.consultastatusservico.MDFeConsStatServRet; +import com.fincatto.documentofiscal.mdfe3.classes.lote.envio.MDFEnvioLote; +import com.fincatto.documentofiscal.mdfe3.classes.lote.envio.MDFEnvioLoteRetornoDados; +import com.fincatto.documentofiscal.mdfe3.classes.nota.MDFInfoModalRodoviarioInfPag; +import com.fincatto.documentofiscal.mdfe3.classes.nota.MDFInfoModalRodoviarioInfViagens; +import com.fincatto.documentofiscal.mdfe3.classes.nota.MDFe; +import com.fincatto.documentofiscal.mdfe3.classes.nota.consulta.MDFeNotaConsultaRetorno; +import com.fincatto.documentofiscal.mdfe3.classes.nota.envio.MDFEnvioRetornoDados; +import com.fincatto.documentofiscal.mdfe3.classes.nota.evento.MDFeEnviaEventoIncluirDFeInfDoc; +import com.fincatto.documentofiscal.mdfe3.classes.nota.evento.MDFeRetorno; +import com.fincatto.documentofiscal.utils.DFSocketFactory; +import org.apache.commons.httpclient.protocol.Protocol; + +import java.io.IOException; +import java.security.KeyManagementException; +import java.security.KeyStoreException; +import java.security.NoSuchAlgorithmException; +import java.security.UnrecoverableKeyException; +import java.security.cert.CertificateException; +import java.time.LocalDate; +import java.util.List; + +public class WSFacade { + + private final WSStatusConsulta wsStatusConsulta; + private final WSRecepcaoLote wsRecepcaoLote; + private final WSRecepcaoSinc wsRecepcaoSinc; + private final WSNotaConsulta wsNotaConsulta; + private final WSCancelamento wsCancelamento; + private final WSEncerramento wsEncerramento; + private final WSConsultaRecibo wsConsultaRecibo; + private final WSConsultaNaoEncerrados wsConsultaNaoEncerrados; + private final WSIncluirCondutor wsIncluirCondutor; + private final WSIncluirDFe wsIncluirDFe; + private final WSPagamentoTransporte wsPagamentoTransporte; + +// private final WSRecepcaoLoteRetorno wsRecepcaoLoteRetorno; + public WSFacade(final MDFeConfig config) throws IOException, KeyManagementException, UnrecoverableKeyException, KeyStoreException, NoSuchAlgorithmException, CertificateException { + Protocol.registerProtocol("https", new Protocol("https", new DFSocketFactory(config), 443)); + this.wsStatusConsulta = new WSStatusConsulta(config); + this.wsRecepcaoLote = new WSRecepcaoLote(config); + this.wsRecepcaoSinc = new WSRecepcaoSinc(config); +// this.wsRecepcaoLoteRetorno = new WSRecepcaoLoteRetorno(config); + this.wsNotaConsulta = new WSNotaConsulta(config); + this.wsCancelamento = new WSCancelamento(config); + this.wsEncerramento = new WSEncerramento(config); + this.wsConsultaRecibo = new WSConsultaRecibo(config); + this.wsConsultaNaoEncerrados = new WSConsultaNaoEncerrados(config); + this.wsIncluirCondutor = new WSIncluirCondutor(config); + this.wsIncluirDFe = new WSIncluirDFe(config); + this.wsPagamentoTransporte = new WSPagamentoTransporte(config); + } + + /** + * Serviços Assincronos serão desativados na data de 30 de Junho de 2024 conforme versa a NT 2024.001. + * + * Faz o envio do lote para a SEFAZ + * + * @param mdfEnvioLote a ser eviado para a SEFAZ + * @return dados do retorno do envio do lote e o xml assinado + * @throws Exception caso nao consiga gerar o xml ou problema de conexao com + * o sefaz + * + */ + @Deprecated + public MDFEnvioLoteRetornoDados envioRecepcaoLote(MDFEnvioLote mdfEnvioLote) throws Exception { + return this.wsRecepcaoLote.envioRecepcao(mdfEnvioLote); + } + + /** + * Faz o envio sincronizado para a SEFAZ + * + * @param mdfEnvio a ser eviado para a SEFAZ + * @return dados do retorno do envio do MDFE e o xml assinado + * @throws Exception caso nao consiga gerar o xml ou problema de conexao com + * o sefaz + * + */ + public MDFEnvioRetornoDados envioRecepcaoSinc(MDFe mdfEnvio) throws Exception { + return this.wsRecepcaoSinc.envioRecepcaoSinc(mdfEnvio); + } + + /** + * Faz a consulta de status responsavel pela UF, no caso apenas o RS está + * disponível + * + * @param uf uf UF que deseja consultar o status do sefaz responsavel + * @return dados da consulta de status retornado pelo webservice + * @throws Exception caso nao consiga gerar o xml ou problema de conexao com + * o sefaz + */ + public MDFeConsStatServRet consultaStatus(final DFUnidadeFederativa uf) throws Exception { + return this.wsStatusConsulta.consultaStatus(uf); + } + + /** + * @see #consultaStatus(DFUnidadeFederativa) + * @return + * @throws Exception + */ + public MDFeConsStatServRet consultaStatus() throws Exception { + return this.wsStatusConsulta.consultaStatus(DFUnidadeFederativa.RS); + } + + /** + * Faz a consulta do MDF-e + * + * @param chaveDeAcesso chave de acesso do MDF-e + * @return dados da consulta da nota retornado pelo webservice + * @throws Exception caso nao consiga gerar o xml ou problema de conexao com + * o sefaz + */ + public MDFeNotaConsultaRetorno consultaMdfe(final String chaveDeAcesso) throws Exception { + return this.wsNotaConsulta.consultaNota(chaveDeAcesso); + } + + /** + * Faz o cancelamento do MDFe + * + * @param chave chave de acesso da nota + * @param numeroProtocolo numero do protocolo da nota + * @param motivo motivo do cancelamento + * @return dados do cancelamento da nota retornado pelo webservice + * @throws Exception caso nao consiga gerar o xml ou problema de conexao com + * o sefaz + */ + public MDFeRetorno cancelaMdfe(final String chave, final String numeroProtocolo, final String motivo) throws Exception { + return this.wsCancelamento.cancelaNota(chave, numeroProtocolo, motivo); + } + + /** + * Faz o cancelamento da nota com evento ja assinado ATENCAO: Esse metodo + * deve ser utilizado para assinaturas A3 + * + * @param chave chave de acesso da nota + * @param eventoAssinadoXml evento ja assinado em formato XML + * @return dados do cancelamento da nota retornado pelo webservice + * @throws Exception caso nao consiga gerar o xml ou problema de conexao com + * o sefaz + */ + public MDFeRetorno cancelaMdfeAssinado(final String chave, final String eventoAssinadoXml) throws Exception { + return this.wsCancelamento.cancelaNotaAssinada(chave, eventoAssinadoXml); + } + + /** + * Faz o encerramento do MDFe + * + * @param chaveAcesso chave de acesso da nota + * @param numeroProtocolo numero do protocolo da nota + * @param codigoMunicipio Informar o código do município do encerramento do + * manifesto + * @param dataEncerramento Data em que o manifesto foi encerrado. + * @param unidadeFederativa Informar a UF de encerramento do manifesto + * @return dados do encerramento da nota retornado pelo webservice + * @throws Exception caso nao consiga gerar o xml ou problema de conexao com + * o sefaz + */ + public MDFeRetorno encerramento(final String chaveAcesso, final String numeroProtocolo, + final String codigoMunicipio, final LocalDate dataEncerramento, final DFUnidadeFederativa unidadeFederativa) throws Exception { + return this.wsEncerramento.encerraMdfe(chaveAcesso, numeroProtocolo, codigoMunicipio, dataEncerramento, unidadeFederativa); + } + + /** + * Faz o encerramento do MDFe assinado + * + * @param chaveAcesso + * @param eventoAssinadoXml + * @return + * @throws Exception + */ + public MDFeRetorno encerramentoAssinado(final String chaveAcesso, final String eventoAssinadoXml) throws Exception { + return this.wsEncerramento.encerramentoMdfeAssinado(chaveAcesso, eventoAssinadoXml); + } + + /** + * Faz a consulta do recibo do MDF-e + * + * @param numeroRecibo recibo do processamento do arquivo MDF-e + * @return dados da consulta da nota retornado pelo webservice + * @throws Exception caso nao consiga gerar o xml ou problema de conexao com + * o sefaz + */ + public MDFeConsultaReciboRetorno consultaRecibo(final String numeroRecibo) throws Exception { + return this.wsConsultaRecibo.consultaRecibo(numeroRecibo); + } + + /** + * Faz a consulta do recibo do MDF-e + * + * @param cnpj CNPJ do Emitente do MDF-e + * @return Retorno de Pedido de Consulta MDF-e não Encerrados + * @throws Exception caso nao consiga gerar o xml ou problema de conexao com + * o sefaz + */ + public MDFeConsultaNaoEncerradosRetorno consultaNaoEncerrados(final String cnpj) throws Exception { + return this.wsConsultaNaoEncerrados.consultaNaoEncerrados(cnpj); + } + + /** + * Faz a inclusão de condutor do veículo de MDF-e Rodoviário. + * + * @param chaveAcesso + * @param nomeCondutor + * @param cpfCondutor + * @return + * @throws Exception + */ + public MDFeRetorno incluirCondutor(final String chaveAcesso, final String nomeCondutor, final String cpfCondutor) throws Exception { + return this.wsIncluirCondutor.incluirCondutor(chaveAcesso, nomeCondutor, cpfCondutor); + } + + /** + * Faz a inclusão de condutor do veículo de MDF-e Rodoviário evento assinado + * + * @param chaveAcesso + * @param eventoAssinadoXml + * @return + * @throws Exception + */ + public MDFeRetorno incluirCondutorAssinado(final String chaveAcesso, final String eventoAssinadoXml) throws Exception { + return this.wsIncluirCondutor.incluirCondutorAssinado(chaveAcesso, eventoAssinadoXml); + } + + /** + * Faz a inclusão de DF-e no MDF-e Rodoviário. + * + * @param chaveAcesso + * @param nomeCondutor + * @param cpfCondutor + * @return + * @throws Exception + */ + public MDFeRetorno incluirDFe(final String chaveAcesso, final String nProt, final String cMunCarrega, final String xMunCarrega, final List infDoc) throws Exception { + return this.wsIncluirDFe.incluirDFe(chaveAcesso, nProt, cMunCarrega, xMunCarrega, infDoc); + } + + /** + * Faz a inclusão de DF-e no MDF-e Rodoviário evento assinado + * + * @param chaveAcesso + * @param eventoAssinadoXml + * @return + * @throws Exception + */ + public MDFeRetorno incluirDFeAssinado(final String chaveAcesso, final String eventoAssinadoXml) throws Exception { + return this.wsIncluirDFe.incluirDFeAssinado(chaveAcesso, eventoAssinadoXml); + } + + /** + * Faz o evento de Pagamento da Operação de Transporte. + * + * @param chaveAcesso + * @param nProt + * @param infPag + * @param infViagens + * @return + * @throws Exception + */ + public MDFeRetorno pagamentoTransporte(final String chaveAcesso, final String nProt, final List infPag, final List infViagens) throws Exception { + return this.wsPagamentoTransporte.pagamento(chaveAcesso, nProt, infPag, infViagens); + } + + /** + * Faz o evento de Pagamento da Operação de Transporte assinado. + * + * @param chaveAcesso + * @param eventoAssinadoXml + * @return + * @throws Exception + */ + public MDFeRetorno pagamentoTransporteAssinado(final String chaveAcesso, final String eventoAssinadoXml) throws Exception { + return this.wsPagamentoTransporte.pagamentoAssinado(chaveAcesso, eventoAssinadoXml); + } +} diff --git a/src/main/java/com/fincatto/documentofiscal/mdfe3/webservices/WSRecepcaoLote.java b/src/main/java/com/fincatto/documentofiscal/mdfe3/webservices/WSRecepcaoLote.java index f376a0c46..1b766702b 100644 --- a/src/main/java/com/fincatto/documentofiscal/mdfe3/webservices/WSRecepcaoLote.java +++ b/src/main/java/com/fincatto/documentofiscal/mdfe3/webservices/WSRecepcaoLote.java @@ -18,6 +18,11 @@ import java.io.StringReader; import java.util.Iterator; +/** + * Serviços Assincronos serão desativados na data de 30 de Junho de 2024 conforme versa a NT 2024.001. + * @author ediva + */ +@Deprecated class WSRecepcaoLote implements DFLog { private static final String MDFE_ELEMENTO = "MDFe"; @@ -27,6 +32,14 @@ class WSRecepcaoLote implements DFLog { this.config = config; } + /** + * Serviços Assincronos serão desativados na data de 30 de Junho de 2024 conforme versa a NT 2024.001. + * + * @param mdfeRecepcaoLote + * @return + * @throws Exception + */ + @Deprecated public MDFEnvioLoteRetornoDados envioRecepcao(MDFEnvioLote mdfeRecepcaoLote) throws Exception { //assina o lote final String documentoAssinado = new DFAssinaturaDigital(this.config).assinarDocumento(mdfeRecepcaoLote.toString(), "infMDFe"); diff --git a/src/main/java/com/fincatto/documentofiscal/mdfe3/webservices/WSRecepcaoSinc.java b/src/main/java/com/fincatto/documentofiscal/mdfe3/webservices/WSRecepcaoSinc.java new file mode 100644 index 000000000..2c881ee4a --- /dev/null +++ b/src/main/java/com/fincatto/documentofiscal/mdfe3/webservices/WSRecepcaoSinc.java @@ -0,0 +1,103 @@ +package com.fincatto.documentofiscal.mdfe3.webservices; + +import com.fincatto.documentofiscal.DFLog; +import com.fincatto.documentofiscal.mdfe3.MDFeConfig; +import com.fincatto.documentofiscal.mdfe3.classes.MDFAutorizador3; +import com.fincatto.documentofiscal.mdfe3.classes.nota.MDFe; +import com.fincatto.documentofiscal.mdfe3.classes.nota.envio.MDFEnvioRetorno; +import com.fincatto.documentofiscal.mdfe3.classes.nota.envio.MDFEnvioRetornoDados; +import com.fincatto.documentofiscal.mdfe3.webservices.recepcao.MDFeRecepcaoSincStub; +import com.fincatto.documentofiscal.mdfe3.webservices.recepcao.MDFeRecepcaoStub; +import com.fincatto.documentofiscal.utils.DFAssinaturaDigital; +import com.fincatto.documentofiscal.validadores.DFXMLValidador; +import java.io.ByteArrayOutputStream; +import org.apache.axiom.om.OMElement; +import org.apache.axiom.om.impl.builder.StAXOMBuilder; + +import javax.xml.stream.XMLInputFactory; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.XMLStreamReader; +import java.io.StringReader; +import java.nio.charset.StandardCharsets; +import java.util.Base64; +import java.util.Iterator; +import java.util.zip.GZIPOutputStream; + +class WSRecepcaoSinc implements DFLog { + + private static final String MDFE_ELEMENTO = "MDFe"; + private final MDFeConfig config; + + WSRecepcaoSinc(final MDFeConfig config) { + this.config = config; + } + + public MDFEnvioRetornoDados envioRecepcaoSinc(MDFe mdfeRecepcao) throws Exception { + //assina o mdfe + final String documentoAssinado = new DFAssinaturaDigital(this.config).assinarDocumento(mdfeRecepcao.toString(), "infMDFe"); + final MDFe mdfeAssinado = this.config.getPersister().read(MDFe.class, documentoAssinado); + + //comunica o mdfe + final MDFEnvioRetorno retorno = comunicaSinc(documentoAssinado); + return new MDFEnvioRetornoDados(retorno, mdfeAssinado); + } + + private MDFEnvioRetorno comunicaSinc(final String mdfeAssinadoXml) throws Exception { + //devido a limitacao padrao de 5000 da jdk + //veja em https://docs.oracle.com/javase/7/docs/api/javax/xml/XMLConstants.html#FEATURE_SECURE_PROCESSING + System.setProperty("jdk.xml.maxOccurLimit", "10000"); + //valida o mdfe assinado, para verificar se o xsd foi satisfeito, antes de comunicar com a sefaz + DFXMLValidador.validaMDFe(mdfeAssinadoXml); + + String mdfeAssinadoXmlGZip = encodeXmlToGZip(mdfeAssinadoXml); + + //adiciona o XML do MDFe assinado e compactado ao envelope de envio do Soap + final MDFeRecepcaoSincStub.MdfeDadosMsg dados = new MDFeRecepcaoSincStub.MdfeDadosMsg(); + dados.setExtraElement(mdfeAssinadoXmlGZip); + + final MDFAutorizador3 autorizador = MDFAutorizador3.valueOfCodigoUF(this.config.getCUF()); + final String endpoint = autorizador.getMDFeRecepcaoSinc(this.config.getAmbiente()); + if (endpoint == null) { + throw new IllegalArgumentException("Nao foi possivel encontrar URL para Recepcao do MDFe, autorizador " + autorizador.name() + ", UF " + this.config.getCUF().name()); + } + + final MDFeRecepcaoSincStub.MdfeRecepcaoSincResult autorizacaoResult = new MDFeRecepcaoSincStub(endpoint, config).mdfeRecepcaoSinc(dados); + final MDFEnvioRetorno retorno = this.config.getPersister().read(MDFEnvioRetorno.class, autorizacaoResult.getExtraElement().toString()); + this.getLogger().debug(retorno.toString()); + return retorno; + } + + private MDFeRecepcaoStub.MdfeCabecMsgE getCabecalhoSOAP() { + final MDFeRecepcaoStub.MdfeCabecMsg cabecalho = new MDFeRecepcaoStub.MdfeCabecMsg(); + cabecalho.setCUF(this.config.getCUF().getCodigoIbge()); + cabecalho.setVersaoDados(MDFeConfig.VERSAO); + final MDFeRecepcaoStub.MdfeCabecMsgE cabecalhoSOAP = new MDFeRecepcaoStub.MdfeCabecMsgE(); + cabecalhoSOAP.setMdfeCabecMsg(cabecalho); + return cabecalhoSOAP; + } + + private OMElement mdfeToOMElement(final String documento) throws XMLStreamException { + final XMLInputFactory factory = XMLInputFactory.newInstance(); + factory.setProperty(XMLInputFactory.IS_COALESCING, false); + XMLStreamReader reader = factory.createXMLStreamReader(new StringReader(documento)); + StAXOMBuilder builder = new StAXOMBuilder(reader); + final OMElement ome = builder.getDocumentElement(); + final Iterator children = ome.getChildrenWithLocalName(WSRecepcaoSinc.MDFE_ELEMENTO); + while (children.hasNext()) { + final OMElement omElement = (OMElement) children.next(); + if ((omElement != null) && (WSRecepcaoSinc.MDFE_ELEMENTO.equals(omElement.getLocalName()))) { + omElement.addAttribute("xmlns", MDFeConfig.NAMESPACE, null); + } + } + return ome; + } + + private static String encodeXmlToGZip(final String stringXml) throws Exception { + try (ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream()) { + try (GZIPOutputStream gzipOutputStream = new GZIPOutputStream(byteArrayOutputStream)) { + gzipOutputStream.write(stringXml.getBytes(StandardCharsets.UTF_8)); + } + return Base64.getEncoder().encodeToString(byteArrayOutputStream.toByteArray()); + } + } +} diff --git a/src/main/java/com/fincatto/documentofiscal/mdfe3/webservices/recepcao/MDFeRecepcaoCallbackHandler.java b/src/main/java/com/fincatto/documentofiscal/mdfe3/webservices/recepcao/MDFeRecepcaoCallbackHandler.java index 05496859c..b90ba8f1a 100644 --- a/src/main/java/com/fincatto/documentofiscal/mdfe3/webservices/recepcao/MDFeRecepcaoCallbackHandler.java +++ b/src/main/java/com/fincatto/documentofiscal/mdfe3/webservices/recepcao/MDFeRecepcaoCallbackHandler.java @@ -8,9 +8,12 @@ package com.fincatto.documentofiscal.mdfe3.webservices.recepcao; /** + * Serviços Assincronos serão desativados na data de 30 de Junho de 2024 conforme versa a NT 2024.001. + * * MDFeRecepcaoCallbackHandler Callback class, Users can extend this class and implement * their own receiveResult and receiveError methods. */ +@Deprecated public abstract class MDFeRecepcaoCallbackHandler { protected final Object clientData; diff --git a/src/main/java/com/fincatto/documentofiscal/mdfe3/webservices/recepcao/MDFeRecepcaoSincCallbackHandler.java b/src/main/java/com/fincatto/documentofiscal/mdfe3/webservices/recepcao/MDFeRecepcaoSincCallbackHandler.java new file mode 100644 index 000000000..2d67487ed --- /dev/null +++ b/src/main/java/com/fincatto/documentofiscal/mdfe3/webservices/recepcao/MDFeRecepcaoSincCallbackHandler.java @@ -0,0 +1,62 @@ +/* + MDFeRecepcaoSincCallbackHandler.java +

+ This file was auto-generated from WSDL + by the Apache Axis2 version: 1.6.2 Built on : Apr 17, 2012 (05:33:49 IST) + */ + +package com.fincatto.documentofiscal.mdfe3.webservices.recepcao; + +/** + * MDFeRecepcaoSincCallbackHandler Callback class, Users can extend this class and implement + * their own receiveResult and receiveError methods. + */ +public abstract class MDFeRecepcaoSincCallbackHandler { + + protected final Object clientData; + + /** + * User can pass in any object that needs to be accessed once the NonBlocking + * Web service call is finished and appropriate method of this CallBack is called. + * @param clientData Object mechanism by which the user can pass in user data + * that will be avilable at the time this callback is called. + */ + public MDFeRecepcaoSincCallbackHandler(Object clientData) { + this.clientData = clientData; + } + + /** + * Please use this constructor if you don't want to set any clientData + */ + public MDFeRecepcaoSincCallbackHandler() { + this.clientData = null; + } + + /** + * Get the client data + */ + + public Object getClientData() { + return clientData; + } + + + /** + * auto generated Axis2 call back method for mdfeRecepcaoLote method + * override this method for handling normal response from mdfeRecepcaoLote operation + */ + public void receiveResultmdfeRecepcaoSinc( + com.fincatto.documentofiscal.mdfe3.webservices.recepcao.MDFeRecepcaoSincStub.MdfeRecepcaoSincResult result + ) { + } + + /** + * auto generated Axis2 Error handler + * override this method for handling error response from mdfeRecepcaoLote operation + */ + public void receiveErrormdfeRecepcaoSinc(java.lang.Exception e) { + } + + +} + \ No newline at end of file diff --git a/src/main/java/com/fincatto/documentofiscal/mdfe3/webservices/recepcao/MDFeRecepcaoSincStub.java b/src/main/java/com/fincatto/documentofiscal/mdfe3/webservices/recepcao/MDFeRecepcaoSincStub.java new file mode 100644 index 000000000..4681dd607 --- /dev/null +++ b/src/main/java/com/fincatto/documentofiscal/mdfe3/webservices/recepcao/MDFeRecepcaoSincStub.java @@ -0,0 +1,1612 @@ +/* + * MDFeRecepcaoStub.java

This file was auto-generated from WSDL by the Apache Axis2 version: 1.6.2 Built on : Apr 17, 2012 (05:33:49 IST) + */ +package com.fincatto.documentofiscal.mdfe3.webservices.recepcao; + +import javax.xml.namespace.QName; + +import org.apache.axiom.om.OMAttribute; +import org.apache.axis2.client.Stub; + +import com.fincatto.documentofiscal.DFConfig; +import com.fincatto.documentofiscal.utils.MessageContextFactory; +import java.util.logging.Level; +import java.util.logging.Logger; +import javax.xml.stream.XMLStreamException; + +/* + * MDFeRecepcaoStub java implementation + */ + +public class MDFeRecepcaoSincStub extends org.apache.axis2.client.Stub { + protected org.apache.axis2.description.AxisOperation[] _operations; + + // hashmaps to keep the fault mapping + @SuppressWarnings("rawtypes") + private final java.util.HashMap faultExceptionNameMap = new java.util.HashMap(); + @SuppressWarnings("rawtypes") + private final java.util.HashMap faultExceptionClassNameMap = new java.util.HashMap(); + @SuppressWarnings("rawtypes") + private final java.util.HashMap faultMessageMap = new java.util.HashMap(); + + private static int counter = 0; + + private static synchronized java.lang.String getUniqueSuffix() { + // reset the counter if it is greater than 99999 + if (MDFeRecepcaoSincStub.counter > 99999) { + MDFeRecepcaoSincStub.counter = 0; + } + MDFeRecepcaoSincStub.counter = MDFeRecepcaoSincStub.counter + 1; + return System.currentTimeMillis() + "_" + MDFeRecepcaoSincStub.counter; + } + + private void populateAxisService() { + // creating the Service with a unique name + this._service = new org.apache.axis2.description.AxisService("MDFeRecepcaoSinc" + MDFeRecepcaoSincStub.getUniqueSuffix()); + this.addAnonymousOperations(); + // creating the operations + org.apache.axis2.description.AxisOperation __operation; + this._operations = new org.apache.axis2.description.AxisOperation[1]; + __operation = new org.apache.axis2.description.OutInAxisOperation(); + __operation.setName(new javax.xml.namespace.QName("http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc", "mdfeRecepcao")); + this._service.addOperation(__operation); + this._operations[0] = __operation; + } + + // populates the faults + private void populateFaults() { + } + + /** + * Constructor that takes in a configContext + */ + + public MDFeRecepcaoSincStub(final org.apache.axis2.context.ConfigurationContext configurationContext, final java.lang.String targetEndpoint, DFConfig config) throws org.apache.axis2.AxisFault { + this(configurationContext, targetEndpoint, false, config); + } + + /** + * Constructor that takes in a configContext and useseperate listner + */ + public MDFeRecepcaoSincStub(final org.apache.axis2.context.ConfigurationContext configurationContext, final java.lang.String targetEndpoint, final boolean useSeparateListener, DFConfig config) throws org.apache.axis2.AxisFault { + // To populate AxisService + this.populateAxisService(); + this.populateFaults(); + this._serviceClient = new org.apache.axis2.client.ServiceClient(configurationContext, this._service); + this._serviceClient.getOptions().setTo(new org.apache.axis2.addressing.EndpointReference(targetEndpoint)); + this._serviceClient.getOptions().setUseSeparateListener(useSeparateListener); + // Set the soap version + this._serviceClient.getOptions().setSoapVersionURI(org.apache.axiom.soap.SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI); + this.config = config; + } + + /** + * Constructor taking the target endpoint + */ + public MDFeRecepcaoSincStub(final java.lang.String targetEndpoint, DFConfig config) throws org.apache.axis2.AxisFault { + this(null, targetEndpoint, config); + } + + /** + * Auto generated method signature + * @param mdfeDadosMsg0 + * @param mdfeCabecMsg1 + */ + + @SuppressWarnings({ "rawtypes", "unchecked" }) + public com.fincatto.documentofiscal.mdfe3.webservices.recepcao.MDFeRecepcaoSincStub.MdfeRecepcaoSincResult mdfeRecepcaoSinc(final com.fincatto.documentofiscal.mdfe3.webservices.recepcao.MDFeRecepcaoSincStub.MdfeDadosMsg mdfeDadosMsg0) throws java.rmi.RemoteException { + org.apache.axis2.context.MessageContext _messageContext = null; + try { + final org.apache.axis2.client.OperationClient _operationClient = this._serviceClient.createClient(this._operations[0].getName()); + _operationClient.getOptions().setAction("http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc/mdfeRecepcao"); + _operationClient.getOptions().setExceptionToBeThrownOnSOAPFault(true); + this.addPropertyToOperationClient(_operationClient, org.apache.axis2.description.WSDL2Constants.ATTR_WHTTP_QUERY_PARAMETER_SEPARATOR, "&"); + // create a message context + _messageContext = MessageContextFactory.INSTANCE.create(config); + // create SOAP envelope with that payload + org.apache.axiom.soap.SOAPEnvelope env; + env = this.toEnvelope( + Stub.getFactory(_operationClient.getOptions().getSoapVersionURI()), + mdfeDadosMsg0, + this.optimizeContent(new javax.xml.namespace.QName("http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc", "mdfeRecepcao")), + new javax.xml.namespace.QName("http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc", "mdfeRecepcao") + ); + env.build(); + // set the message context with that soap envelope + _messageContext.setEnvelope(env); + // add the message contxt to the operation client + _operationClient.addMessageContext(_messageContext); + // execute the operation client + _operationClient.execute(true); + final org.apache.axis2.context.MessageContext _returnMessageContext = _operationClient.getMessageContext(org.apache.axis2.wsdl.WSDLConstants.MESSAGE_LABEL_IN_VALUE); + final org.apache.axiom.soap.SOAPEnvelope _returnEnv = _returnMessageContext.getEnvelope(); + final java.lang.Object object = this.fromOM(_returnEnv.getBody().getFirstElement(), com.fincatto.documentofiscal.mdfe3.webservices.recepcao.MDFeRecepcaoSincStub.MdfeRecepcaoSincResult.class, this.getEnvelopeNamespaces(_returnEnv)); + return (com.fincatto.documentofiscal.mdfe3.webservices.recepcao.MDFeRecepcaoSincStub.MdfeRecepcaoSincResult) object; + } catch (final org.apache.axis2.AxisFault f) { + final org.apache.axiom.om.OMElement faultElt = f.getDetail(); + if (faultElt != null) { + if (this.faultExceptionNameMap.containsKey(new org.apache.axis2.client.FaultMapKey(faultElt.getQName(), "mdfeRecepcao"))) { + // make the fault by reflection + try { + final java.lang.String exceptionClassName = (java.lang.String) this.faultExceptionClassNameMap.get(new org.apache.axis2.client.FaultMapKey(faultElt.getQName(), "mdfeRecepcao")); + final java.lang.Class exceptionClass = java.lang.Class.forName(exceptionClassName); + final java.lang.reflect.Constructor constructor = exceptionClass.getConstructor(String.class); + final java.lang.Exception ex = (java.lang.Exception) constructor.newInstance(f.getMessage()); + // message class + final java.lang.String messageClassName = (java.lang.String) this.faultMessageMap.get(new org.apache.axis2.client.FaultMapKey(faultElt.getQName(), "mdfeRecepcao")); + final java.lang.Class messageClass = java.lang.Class.forName(messageClassName); + final java.lang.Object messageObject = this.fromOM(faultElt, messageClass, null); + final java.lang.reflect.Method m = exceptionClass.getMethod("setFaultMessage", messageClass); + m.invoke(ex, messageObject); + throw new java.rmi.RemoteException(ex.getMessage(), ex); + } catch (ClassCastException | InstantiationException | IllegalAccessException | java.lang.reflect.InvocationTargetException | NoSuchMethodException | ClassNotFoundException e) { + // we cannot intantiate the class - throw the original Axis fault + throw f; + } + } else { + throw f; + } + } else { + throw f; + } + } finally { + if (_messageContext.getTransportOut() != null) { + _messageContext.getTransportOut().getSender().cleanup(_messageContext); + } + } + } + + /** + * Auto generated method signature for Asynchronous Invocations + * @param mdfeDadosMsg0 + * @param mdfeCabecMsg1 + */ + public void startmdfeRecepcao(final com.fincatto.documentofiscal.mdfe3.webservices.recepcao.MDFeRecepcaoSincStub.MdfeDadosMsg mdfeDadosMsg0, final com.fincatto.documentofiscal.mdfe3.webservices.recepcao.MDFeRecepcaoSincCallbackHandler callback) throws java.rmi.RemoteException { + final org.apache.axis2.client.OperationClient _operationClient = this._serviceClient.createClient(this._operations[0].getName()); + _operationClient.getOptions().setAction("http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcao/mdfeRecepcao"); + _operationClient.getOptions().setExceptionToBeThrownOnSOAPFault(true); + this.addPropertyToOperationClient(_operationClient, org.apache.axis2.description.WSDL2Constants.ATTR_WHTTP_QUERY_PARAMETER_SEPARATOR, "&"); + // create SOAP envelope with that payload + org.apache.axiom.soap.SOAPEnvelope env; + final org.apache.axis2.context.MessageContext _messageContext = MessageContextFactory.INSTANCE.create(config); + // Style is Doc. + env = this.toEnvelope(Stub.getFactory(_operationClient.getOptions().getSoapVersionURI()), mdfeDadosMsg0, this.optimizeContent(new javax.xml.namespace.QName("http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc", "mdfeRecepcao")), new javax.xml.namespace.QName("http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc", "mdfeRecepcao")); +// // add the soap_headers only if they are not null +// if (mdfeCabecMsg1 != null) { +// final org.apache.axiom.om.OMElement omElementmdfeCabecMsg1 = this.toOM(mdfeCabecMsg1, this.optimizeContent(new javax.xml.namespace.QName("http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc", "mdfeRecepcao"))); +// this.addHeader(omElementmdfeCabecMsg1, env); +// } +// // adding SOAP soap_headers +// this._serviceClient.addHeadersToEnvelope(env); + // create message context with that soap envelope + _messageContext.setEnvelope(env); + // add the message context to the operation client + _operationClient.addMessageContext(_messageContext); + _operationClient.setCallback(new org.apache.axis2.client.async.AxisCallback() { + @Override + public void onMessage(final org.apache.axis2.context.MessageContext resultContext) { + try { + final org.apache.axiom.soap.SOAPEnvelope resultEnv = resultContext.getEnvelope(); + final java.lang.Object object = MDFeRecepcaoSincStub.this.fromOM(resultEnv.getBody().getFirstElement(), com.fincatto.documentofiscal.mdfe3.webservices.recepcao.MDFeRecepcaoSincStub.MdfeRecepcaoSincResult.class, MDFeRecepcaoSincStub.this.getEnvelopeNamespaces(resultEnv)); + callback.receiveResultmdfeRecepcaoSinc((com.fincatto.documentofiscal.mdfe3.webservices.recepcao.MDFeRecepcaoSincStub.MdfeRecepcaoSincResult) object); + } catch (final org.apache.axis2.AxisFault e) { + callback.receiveErrormdfeRecepcaoSinc(e); + } + } + + @SuppressWarnings({ "rawtypes", "unchecked" }) + @Override + public void onError(final java.lang.Exception error) { + if (error instanceof org.apache.axis2.AxisFault) { + final org.apache.axis2.AxisFault f = (org.apache.axis2.AxisFault) error; + final org.apache.axiom.om.OMElement faultElt = f.getDetail(); + if (faultElt != null) { + if (MDFeRecepcaoSincStub.this.faultExceptionNameMap.containsKey(new org.apache.axis2.client.FaultMapKey(faultElt.getQName(), "mdfeRecepcao"))) { + // make the fault by reflection + try { + final java.lang.String exceptionClassName = (java.lang.String) MDFeRecepcaoSincStub.this.faultExceptionClassNameMap.get(new org.apache.axis2.client.FaultMapKey(faultElt.getQName(), "mdfeRecepcao")); + final java.lang.Class exceptionClass = java.lang.Class.forName(exceptionClassName); + final java.lang.reflect.Constructor constructor = exceptionClass.getConstructor(String.class); + final java.lang.Exception ex = (java.lang.Exception) constructor.newInstance(f.getMessage()); + // message class + final java.lang.String messageClassName = (java.lang.String) MDFeRecepcaoSincStub.this.faultMessageMap.get(new org.apache.axis2.client.FaultMapKey(faultElt.getQName(), "mdfeRecepcao")); + final java.lang.Class messageClass = java.lang.Class.forName(messageClassName); + final java.lang.Object messageObject = MDFeRecepcaoSincStub.this.fromOM(faultElt, messageClass, null); + final java.lang.reflect.Method m = exceptionClass.getMethod("setFaultMessage", messageClass); + m.invoke(ex, messageObject); + callback.receiveErrormdfeRecepcaoSinc(new java.rmi.RemoteException(ex.getMessage(), ex)); + } catch (ClassCastException | org.apache.axis2.AxisFault | InstantiationException | IllegalAccessException | java.lang.reflect.InvocationTargetException | NoSuchMethodException | ClassNotFoundException e) { + // we cannot intantiate the class - throw the original Axis fault + callback.receiveErrormdfeRecepcaoSinc(f); + } + } else { + callback.receiveErrormdfeRecepcaoSinc(f); + } + } else { + callback.receiveErrormdfeRecepcaoSinc(f); + } + } else { + callback.receiveErrormdfeRecepcaoSinc(error); + } + } + + @Override + public void onFault(final org.apache.axis2.context.MessageContext faultContext) { + final org.apache.axis2.AxisFault fault = org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(faultContext); + this.onError(fault); + } + + @Override + public void onComplete() { + try { + _messageContext.getTransportOut().getSender().cleanup(_messageContext); + } catch (final org.apache.axis2.AxisFault axisFault) { + callback.receiveErrormdfeRecepcaoSinc(axisFault); + } + } + }); + org.apache.axis2.util.CallbackReceiver _callbackReceiver; + if (this._operations[0].getMessageReceiver() == null && _operationClient.getOptions().isUseSeparateListener()) { + _callbackReceiver = new org.apache.axis2.util.CallbackReceiver(); + this._operations[0].setMessageReceiver(_callbackReceiver); + } + // execute the operation client + _operationClient.execute(false); + } + + /** + * A utility method that copies the namepaces from the SOAPEnvelope + */ + @SuppressWarnings({ "rawtypes", "unchecked" }) + private java.util.Map getEnvelopeNamespaces(final org.apache.axiom.soap.SOAPEnvelope env) { + final java.util.Map returnMap = new java.util.HashMap(); + final java.util.Iterator namespaceIterator = env.getAllDeclaredNamespaces(); + while (namespaceIterator.hasNext()) { + final org.apache.axiom.om.OMNamespace ns = (org.apache.axiom.om.OMNamespace) namespaceIterator.next(); + returnMap.put(ns.getPrefix(), ns.getNamespaceURI()); + } + return returnMap; + } + + private final javax.xml.namespace.QName[] opNameArray = null; + private final DFConfig config; + + private boolean optimizeContent(final javax.xml.namespace.QName opName) { + if (this.opNameArray == null) { + return false; + } + for (final QName anOpNameArray : this.opNameArray) { + if (opName.equals(anOpNameArray)) { + return true; + } + } + return false; + } + + // https://mdfe.sefaz.rs.gov.br/ws/MDFerecepcao/MDFeRecepcaoSinc.asmx + public static class ExtensionMapper { + + public static java.lang.Object getTypeObject(final java.lang.String namespaceURI, final java.lang.String typeName, final javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception { + if ("http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc".equals(namespaceURI) && "mdfeCabecMsg".equals(typeName)) { + return MdfeCabecMsg.Factory.parse(reader); + } + throw new org.apache.axis2.databinding.ADBException("Unsupported type " + namespaceURI + " " + typeName); + } + } + + @SuppressWarnings("serial") + public static class MdfeCabecMsg implements org.apache.axis2.databinding.ADBBean { + /* + * This type was generated from the piece of schema that had name = mdfeCabecMsg Namespace URI = http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc Namespace Prefix = ns2 + */ + + /** + * field for CUF + */ + + protected java.lang.String localCUF; + + /* + * This tracker boolean wil be used to detect whether the user called the set method for this attribute. It will be used to determine whether to include this field in the serialized XML + */ + protected boolean localCUFTracker = false; + + public boolean isCUFSpecified() { + return this.localCUFTracker; + } + + /** + * Auto generated getter method + * @return java.lang.String + */ + public java.lang.String getCUF() { + return this.localCUF; + } + + /** + * Auto generated setter method + * @param param CUF + */ + public void setCUF(final java.lang.String param) { + this.localCUFTracker = param != null; + this.localCUF = param; + } + + /** + * field for VersaoDados + */ + + protected java.lang.String localVersaoDados; + + /* + * This tracker boolean wil be used to detect whether the user called the set method for this attribute. It will be used to determine whether to include this field in the serialized XML + */ + protected boolean localVersaoDadosTracker = false; + + public boolean isVersaoDadosSpecified() { + return this.localVersaoDadosTracker; + } + + /** + * Auto generated getter method + * @return java.lang.String + */ + public java.lang.String getVersaoDados() { + return this.localVersaoDados; + } + + /** + * Auto generated setter method + * @param param VersaoDados + */ + public void setVersaoDados(final java.lang.String param) { + this.localVersaoDadosTracker = param != null; + this.localVersaoDados = param; + } + + /** + * field for ExtraAttributes This was an Attribute! This was an Array! + */ + + protected org.apache.axiom.om.OMAttribute[] localExtraAttributes; + + /** + * Auto generated getter method + * @return org.apache.axiom.om.OMAttribute[] + */ + public org.apache.axiom.om.OMAttribute[] getExtraAttributes() { + return this.localExtraAttributes; + } + + /** + * validate the array for ExtraAttributes + */ + protected void validateExtraAttributes(final org.apache.axiom.om.OMAttribute[] param) { + if ((param != null) && (param.length > 1)) { + throw new java.lang.RuntimeException(); + } + if ((param != null) && (param.length < 1)) { + throw new java.lang.RuntimeException(); + } + } + + /** + * Auto generated setter method + * @param param ExtraAttributes + */ + public void setExtraAttributes(final org.apache.axiom.om.OMAttribute[] param) { + this.validateExtraAttributes(param); + this.localExtraAttributes = param; + } + + /** + * Auto generated add method for the array for convenience + * @param param org.apache.axiom.om.OMAttribute + */ + @SuppressWarnings({ "rawtypes", "unchecked" }) + public void addExtraAttributes(final org.apache.axiom.om.OMAttribute param) { + if (this.localExtraAttributes == null) { + this.localExtraAttributes = new org.apache.axiom.om.OMAttribute[] {}; + } + final java.util.List list = org.apache.axis2.databinding.utils.ConverterUtil.toList(this.localExtraAttributes); + list.add(param); + this.localExtraAttributes = (org.apache.axiom.om.OMAttribute[]) list.toArray(new org.apache.axiom.om.OMAttribute[0]); + } + + /** + * @param parentQName + * @param factory + * @return org.apache.axiom.om.OMElement + */ + @Override + public org.apache.axiom.om.OMElement getOMElement(final javax.xml.namespace.QName parentQName, final org.apache.axiom.om.OMFactory factory) { + final org.apache.axiom.om.OMDataSource dataSource = new org.apache.axis2.databinding.ADBDataSource(this, parentQName); + return factory.createOMElement(dataSource, parentQName); + } + + @Override + public void serialize(final javax.xml.namespace.QName parentQName, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + this.serialize(parentQName, xmlWriter, false); + } + + @SuppressWarnings("deprecation") + @Override + public void serialize(final javax.xml.namespace.QName parentQName, final javax.xml.stream.XMLStreamWriter xmlWriter, final boolean serializeType) throws javax.xml.stream.XMLStreamException { + java.lang.String prefix; + java.lang.String namespace; + prefix = parentQName.getPrefix(); + namespace = parentQName.getNamespaceURI(); + this.writeStartElement(prefix, namespace, parentQName.getLocalPart(), xmlWriter); + if (serializeType) { + final java.lang.String namespacePrefix = this.registerPrefix(xmlWriter, "http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc"); + if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)) { + this.writeAttribute("xsi", "http://www.w3.org/2001/XMLSchema-instance", "type", namespacePrefix + ":mdfeCabecMsg", xmlWriter); + } else { + this.writeAttribute("xsi", "http://www.w3.org/2001/XMLSchema-instance", "type", "mdfeCabecMsg", xmlWriter); + } + } + if (this.localExtraAttributes != null) { + for (final OMAttribute localExtraAttribute : this.localExtraAttributes) { + this.writeAttribute(localExtraAttribute.getNamespace().getName(), localExtraAttribute.getLocalName(), localExtraAttribute.getAttributeValue(), xmlWriter); + } + } + if (this.localCUFTracker) { + namespace = "http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc"; + this.writeStartElement(null, namespace, "cUF", xmlWriter); + if (this.localCUF == null) { + // write the nil attribute + throw new org.apache.axis2.databinding.ADBException("cUF cannot be null!!"); + } else { + xmlWriter.writeCharacters(this.localCUF); + } + xmlWriter.writeEndElement(); + } + if (this.localVersaoDadosTracker) { + namespace = "http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc"; + this.writeStartElement(null, namespace, "versaoDados", xmlWriter); + if (this.localVersaoDados == null) { + // write the nil attribute + throw new org.apache.axis2.databinding.ADBException("versaoDados cannot be null!!"); + } else { + xmlWriter.writeCharacters(this.localVersaoDados); + } + xmlWriter.writeEndElement(); + } + xmlWriter.writeEndElement(); + } + + private static java.lang.String generatePrefix(final java.lang.String namespace) { + if (namespace.equals("http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc")) { + return "ns2"; + } + return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix(); + } + + /** + * Utility method to write an element start tag. + */ + private void writeStartElement(java.lang.String prefix, final java.lang.String namespace, final java.lang.String localPart, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + final java.lang.String writerPrefix = xmlWriter.getPrefix(namespace); + if (writerPrefix != null) { + xmlWriter.writeStartElement(namespace, localPart); + } else { + if (namespace.length() == 0) { + prefix = ""; + } else if (prefix == null) { + prefix = MdfeCabecMsg.generatePrefix(namespace); + } + xmlWriter.writeStartElement(prefix, localPart, namespace); + xmlWriter.writeNamespace(prefix, namespace); + xmlWriter.setPrefix(prefix, namespace); + } + } + + /** + * Util method to write an attribute with the ns prefix + */ + private void writeAttribute(final java.lang.String prefix, final java.lang.String namespace, final java.lang.String attName, final java.lang.String attValue, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + if (xmlWriter.getPrefix(namespace) == null) { + xmlWriter.writeNamespace(prefix, namespace); + xmlWriter.setPrefix(prefix, namespace); + } + xmlWriter.writeAttribute(namespace, attName, attValue); + } + + /** + * Util method to write an attribute without the ns prefix + */ + private void writeAttribute(final java.lang.String namespace, final java.lang.String attName, final java.lang.String attValue, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + if (namespace.equals("")) { + xmlWriter.writeAttribute(attName, attValue); + } else { + this.registerPrefix(xmlWriter, namespace); + xmlWriter.writeAttribute(namespace, attName, attValue); + } + } + + /** + * Util method to write an attribute without the ns prefix + */ + @SuppressWarnings("unused") + private void writeQNameAttribute(final java.lang.String namespace, final java.lang.String attName, final javax.xml.namespace.QName qname, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + final java.lang.String attributeNamespace = qname.getNamespaceURI(); + java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace); + if (attributePrefix == null) { + attributePrefix = this.registerPrefix(xmlWriter, attributeNamespace); + } + java.lang.String attributeValue; + if (attributePrefix.trim().length() > 0) { + attributeValue = attributePrefix + ":" + qname.getLocalPart(); + } else { + attributeValue = qname.getLocalPart(); + } + if (namespace.equals("")) { + xmlWriter.writeAttribute(attName, attributeValue); + } else { + this.registerPrefix(xmlWriter, namespace); + xmlWriter.writeAttribute(namespace, attName, attributeValue); + } + } + + /** + * method to handle Qnames + */ + + @SuppressWarnings("unused") + private void writeQName(final javax.xml.namespace.QName qname, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + final java.lang.String namespaceURI = qname.getNamespaceURI(); + if (namespaceURI != null) { + java.lang.String prefix = xmlWriter.getPrefix(namespaceURI); + if (prefix == null) { + prefix = MdfeCabecMsg.generatePrefix(namespaceURI); + xmlWriter.writeNamespace(prefix, namespaceURI); + xmlWriter.setPrefix(prefix, namespaceURI); + } + if (prefix.trim().length() > 0) { + xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname)); + } else { + // i.e this is the default namespace + xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname)); + } + } else { + xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname)); + } + } + + @SuppressWarnings("unused") + private void writeQNames(final javax.xml.namespace.QName[] qnames, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + if (qnames != null) { + // we have to store this data until last moment since it is not possible to write any + // namespace data after writing the charactor data + final StringBuilder stringToWrite = new StringBuilder(); + java.lang.String namespaceURI; + java.lang.String prefix; + for (int i = 0; i < qnames.length; i++) { + if (i > 0) { + stringToWrite.append(" "); + } + namespaceURI = qnames[i].getNamespaceURI(); + if (namespaceURI != null) { + prefix = xmlWriter.getPrefix(namespaceURI); + if ((prefix == null) || (prefix.length() == 0)) { + prefix = MdfeCabecMsg.generatePrefix(namespaceURI); + xmlWriter.writeNamespace(prefix, namespaceURI); + xmlWriter.setPrefix(prefix, namespaceURI); + } + if (prefix.trim().length() > 0) { + stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i])); + } else { + stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i])); + } + } else { + stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i])); + } + } + xmlWriter.writeCharacters(stringToWrite.toString()); + } + } + + /** + * Register a namespace prefix + */ + private java.lang.String registerPrefix(final javax.xml.stream.XMLStreamWriter xmlWriter, final java.lang.String namespace) throws javax.xml.stream.XMLStreamException { + java.lang.String prefix = xmlWriter.getPrefix(namespace); + if (prefix == null) { + prefix = MdfeCabecMsg.generatePrefix(namespace); + final javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext(); + while (true) { + final java.lang.String uri = nsContext.getNamespaceURI(prefix); + if (uri == null || uri.length() == 0) { + break; + } + prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix(); + } + xmlWriter.writeNamespace(prefix, namespace); + xmlWriter.setPrefix(prefix, namespace); + } + return prefix; + } + + /** + * Factory class that keeps the parse method + */ + public static class Factory { + + /** + * static method to create the object Precondition: If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable If this object is not an element, it is a complex type and the reader is at the event just after the outer start element Postcondition: If this object is an element, the reader is positioned at its end element If this object is a complex type, the reader is positioned at the end element of its outer element + */ + @SuppressWarnings({ "unused", "rawtypes" }) + public static MdfeCabecMsg parse(final javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception { + final MdfeCabecMsg object = new MdfeCabecMsg(); + final int event; + java.lang.String nillableValue; + final java.lang.String prefix = ""; + final java.lang.String namespaceuri = ""; + try { + while (!reader.isStartElement() && !reader.isEndElement()) { + reader.next(); + } + if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance", "type") != null) { + final java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance", "type"); + if (fullTypeName != null) { + java.lang.String nsPrefix = null; + if (fullTypeName.contains(":")) { + nsPrefix = fullTypeName.substring(0, fullTypeName.indexOf(":")); + } + nsPrefix = nsPrefix == null ? "" : nsPrefix; + final java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":") + 1); + if (!"mdfeCabecMsg".equals(type)) { + // find namespace for the prefix + final java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix); + return (MdfeCabecMsg) ExtensionMapper.getTypeObject(nsUri, type, reader); + } + } + } + // Note all attributes that were handled. Used to differ normal attributes + // from anyAttributes. + final java.util.Vector handledAttributes = new java.util.Vector(); + // now run through all any or extra attributes + // which were not reflected until now + for (int i = 0; i < reader.getAttributeCount(); i++) { + if (!handledAttributes.contains(reader.getAttributeLocalName(i))) { + // this is an anyAttribute and we create + // an OMAttribute for this + final org.apache.axiom.om.OMFactory factory = org.apache.axiom.om.OMAbstractFactory.getOMFactory(); + final org.apache.axiom.om.OMAttribute attr = factory.createOMAttribute(reader.getAttributeLocalName(i), factory.createOMNamespace(reader.getAttributeNamespace(i), reader.getAttributePrefix(i)), reader.getAttributeValue(i)); + // and add it to the extra attributes + object.addExtraAttributes(attr); + } + } + reader.next(); + while (!reader.isStartElement() && !reader.isEndElement()) { + reader.next(); + } + if (reader.isStartElement() && new javax.xml.namespace.QName("http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc", "cUF").equals(reader.getName())) { + nillableValue = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance", "nil"); + if ("true".equals(nillableValue) || "1".equals(nillableValue)) { + throw new org.apache.axis2.databinding.ADBException("The element: " + "cUF" + " cannot be null"); + } + final java.lang.String content = reader.getElementText(); + object.setCUF(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(content)); + reader.next(); + } // End of if for expected property start element + while (!reader.isStartElement() && !reader.isEndElement()) { + reader.next(); + } + if (reader.isStartElement() && new javax.xml.namespace.QName("http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc", "versaoDados").equals(reader.getName())) { + nillableValue = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance", "nil"); + if ("true".equals(nillableValue) || "1".equals(nillableValue)) { + throw new org.apache.axis2.databinding.ADBException("The element: " + "versaoDados" + " cannot be null"); + } + final java.lang.String content = reader.getElementText(); + object.setVersaoDados(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(content)); + reader.next(); + } // End of if for expected property start element + while (!reader.isStartElement() && !reader.isEndElement()) { + reader.next(); + } + if (reader.isStartElement()) { + // A start element we are not expecting indicates a trailing invalid property + throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getName()); + } + } catch (final javax.xml.stream.XMLStreamException e) { + throw new java.lang.Exception(e); + } + return object; + } + }// end of factory class + } + + @SuppressWarnings("serial") + public static class MdfeRecepcaoSincResult implements org.apache.axis2.databinding.ADBBean { + + public static final javax.xml.namespace.QName MY_QNAME = new javax.xml.namespace.QName("http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc", "mdfeRecepcaoResult", "ns2"); + + /** + * field for ExtraElement + */ + + protected org.apache.axiom.om.OMElement localExtraElement; + + /** + * Auto generated getter method + * @return org.apache.axiom.om.OMElement + */ + public org.apache.axiom.om.OMElement getExtraElement() { + return this.localExtraElement; + } + + /** + * Auto generated setter method + * @param param ExtraElement + */ + public void setExtraElement(final org.apache.axiom.om.OMElement param) { + this.localExtraElement = param; + } + + /** + * @param parentQName + * @param factory + * @return org.apache.axiom.om.OMElement + */ + @Override + public org.apache.axiom.om.OMElement getOMElement(final javax.xml.namespace.QName parentQName, final org.apache.axiom.om.OMFactory factory) { + final org.apache.axiom.om.OMDataSource dataSource = new org.apache.axis2.databinding.ADBDataSource(this, MdfeRecepcaoSincResult.MY_QNAME); + return factory.createOMElement(dataSource, MdfeRecepcaoSincResult.MY_QNAME); + } + + @Override + public void serialize(final javax.xml.namespace.QName parentQName, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + this.serialize(parentQName, xmlWriter, false); + } + + @Override + public void serialize(final javax.xml.namespace.QName parentQName, final javax.xml.stream.XMLStreamWriter xmlWriter, final boolean serializeType) throws javax.xml.stream.XMLStreamException { + java.lang.String prefix; + java.lang.String namespace; + prefix = parentQName.getPrefix(); + namespace = parentQName.getNamespaceURI(); + this.writeStartElement(prefix, namespace, parentQName.getLocalPart(), xmlWriter); + if (serializeType) { + final java.lang.String namespacePrefix = this.registerPrefix(xmlWriter, "http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc"); + if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)) { + this.writeAttribute("xsi", "http://www.w3.org/2001/XMLSchema-instance", "type", namespacePrefix + ":mdfeRecepcaoResult", xmlWriter); + } else { + this.writeAttribute("xsi", "http://www.w3.org/2001/XMLSchema-instance", "type", "mdfeRecepcaoResult", xmlWriter); + } + } + if (this.localExtraElement != null) { + this.localExtraElement.serialize(xmlWriter); + } else { + throw new org.apache.axis2.databinding.ADBException("extraElement cannot be null!!"); + } + xmlWriter.writeEndElement(); + } + + private static java.lang.String generatePrefix(final java.lang.String namespace) { + if (namespace.equals("http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc")) { + return "ns2"; + } + return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix(); + } + + /** + * Utility method to write an element start tag. + */ + private void writeStartElement(java.lang.String prefix, final java.lang.String namespace, final java.lang.String localPart, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + final java.lang.String writerPrefix = xmlWriter.getPrefix(namespace); + if (writerPrefix != null) { + xmlWriter.writeStartElement(namespace, localPart); + } else { + if (namespace.length() == 0) { + prefix = ""; + } else if (prefix == null) { + prefix = MdfeRecepcaoSincResult.generatePrefix(namespace); + } + xmlWriter.writeStartElement(prefix, localPart, namespace); + xmlWriter.writeNamespace(prefix, namespace); + xmlWriter.setPrefix(prefix, namespace); + } + } + + /** + * Util method to write an attribute with the ns prefix + */ + private void writeAttribute(final java.lang.String prefix, final java.lang.String namespace, final java.lang.String attName, final java.lang.String attValue, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + if (xmlWriter.getPrefix(namespace) == null) { + xmlWriter.writeNamespace(prefix, namespace); + xmlWriter.setPrefix(prefix, namespace); + } + xmlWriter.writeAttribute(namespace, attName, attValue); + } + + /** + * Util method to write an attribute without the ns prefix + */ + @SuppressWarnings("unused") + private void writeAttribute(final java.lang.String namespace, final java.lang.String attName, final java.lang.String attValue, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + if (namespace.equals("")) { + xmlWriter.writeAttribute(attName, attValue); + } else { + this.registerPrefix(xmlWriter, namespace); + xmlWriter.writeAttribute(namespace, attName, attValue); + } + } + + /** + * Util method to write an attribute without the ns prefix + */ + @SuppressWarnings("unused") + private void writeQNameAttribute(final java.lang.String namespace, final java.lang.String attName, final javax.xml.namespace.QName qname, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + final java.lang.String attributeNamespace = qname.getNamespaceURI(); + java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace); + if (attributePrefix == null) { + attributePrefix = this.registerPrefix(xmlWriter, attributeNamespace); + } + java.lang.String attributeValue; + if (attributePrefix.trim().length() > 0) { + attributeValue = attributePrefix + ":" + qname.getLocalPart(); + } else { + attributeValue = qname.getLocalPart(); + } + if (namespace.equals("")) { + xmlWriter.writeAttribute(attName, attributeValue); + } else { + this.registerPrefix(xmlWriter, namespace); + xmlWriter.writeAttribute(namespace, attName, attributeValue); + } + } + + /** + * method to handle Qnames + */ + + @SuppressWarnings("unused") + private void writeQName(final javax.xml.namespace.QName qname, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + final java.lang.String namespaceURI = qname.getNamespaceURI(); + if (namespaceURI != null) { + java.lang.String prefix = xmlWriter.getPrefix(namespaceURI); + if (prefix == null) { + prefix = MdfeRecepcaoSincResult.generatePrefix(namespaceURI); + xmlWriter.writeNamespace(prefix, namespaceURI); + xmlWriter.setPrefix(prefix, namespaceURI); + } + if (prefix.trim().length() > 0) { + xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname)); + } else { + // i.e this is the default namespace + xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname)); + } + } else { + xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname)); + } + } + + @SuppressWarnings("unused") + private void writeQNames(final javax.xml.namespace.QName[] qnames, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + if (qnames != null) { + // we have to store this data until last moment since it is not possible to write any + // namespace data after writing the charactor data + final StringBuilder stringToWrite = new StringBuilder(); + java.lang.String namespaceURI; + java.lang.String prefix; + for (int i = 0; i < qnames.length; i++) { + if (i > 0) { + stringToWrite.append(" "); + } + namespaceURI = qnames[i].getNamespaceURI(); + if (namespaceURI != null) { + prefix = xmlWriter.getPrefix(namespaceURI); + if ((prefix == null) || (prefix.length() == 0)) { + prefix = MdfeRecepcaoSincResult.generatePrefix(namespaceURI); + xmlWriter.writeNamespace(prefix, namespaceURI); + xmlWriter.setPrefix(prefix, namespaceURI); + } + if (prefix.trim().length() > 0) { + stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i])); + } else { + stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i])); + } + } else { + stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i])); + } + } + xmlWriter.writeCharacters(stringToWrite.toString()); + } + } + + /** + * Register a namespace prefix + */ + private java.lang.String registerPrefix(final javax.xml.stream.XMLStreamWriter xmlWriter, final java.lang.String namespace) throws javax.xml.stream.XMLStreamException { + java.lang.String prefix = xmlWriter.getPrefix(namespace); + if (prefix == null) { + prefix = MdfeRecepcaoSincResult.generatePrefix(namespace); + final javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext(); + while (true) { + final java.lang.String uri = nsContext.getNamespaceURI(prefix); + if (uri == null || uri.length() == 0) { + break; + } + prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix(); + } + xmlWriter.writeNamespace(prefix, namespace); + xmlWriter.setPrefix(prefix, namespace); + } + return prefix; + } + + /** + * Factory class that keeps the parse method + */ + public static class Factory { + + /** + * static method to create the object Precondition: If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable If this object is not an element, it is a complex type and the reader is at the event just after the outer start element Postcondition: If this object is an element, the reader is positioned at its end element If this object is a complex type, the reader is positioned at the end element of its outer element + */ + @SuppressWarnings({ "unused", "rawtypes" }) + public static MdfeRecepcaoSincResult parse(final javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception { + final MdfeRecepcaoSincResult object = new MdfeRecepcaoSincResult(); + final int event; + final java.lang.String nillableValue = null; + final java.lang.String prefix = ""; + final java.lang.String namespaceuri = ""; + try { + while (!reader.isStartElement() && !reader.isEndElement()) { + reader.next(); + } + if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance", "type") != null) { + final java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance", "type"); + if (fullTypeName != null) { + java.lang.String nsPrefix = null; + if (fullTypeName.contains(":")) { + nsPrefix = fullTypeName.substring(0, fullTypeName.indexOf(":")); + } + nsPrefix = nsPrefix == null ? "" : nsPrefix; + final java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":") + 1); + if (!"mdfeRecepcaoResult".equals(type)) { + // find namespace for the prefix + final java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix); + return (MdfeRecepcaoSincResult) ExtensionMapper.getTypeObject(nsUri, type, reader); + } + } + } + // Note all attributes that were handled. Used to differ normal attributes + // from anyAttributes. + final java.util.Vector handledAttributes = new java.util.Vector(); + reader.next(); + while (!reader.isStartElement() && !reader.isEndElement()) { + reader.next(); + } + if (reader.isStartElement()) { + // use the QName from the parser as the name for the builder + final javax.xml.namespace.QName startQname1 = reader.getName(); + // We need to wrap the reader so that it produces a fake START_DOCUMENT event + // this is needed by the builder classes + final org.apache.axis2.databinding.utils.NamedStaxOMBuilder builder1 = new org.apache.axis2.databinding.utils.NamedStaxOMBuilder(new org.apache.axis2.util.StreamWrapper(reader), startQname1); + object.setExtraElement(builder1.getOMElement()); + reader.next(); + } // End of if for expected property start element + else { + // A start element we are not expecting indicates an invalid parameter was passed + throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getName()); + } + while (!reader.isStartElement() && !reader.isEndElement()) { + reader.next(); + } + if (reader.isStartElement()) { + // A start element we are not expecting indicates a trailing invalid property + throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getName()); + } + } catch (final javax.xml.stream.XMLStreamException e) { + throw new java.lang.Exception(e); + } + return object; + } + }// end of factory class + } + + @SuppressWarnings("serial") + public static class MdfeCabecMsgE implements org.apache.axis2.databinding.ADBBean { + + public static final javax.xml.namespace.QName MY_QNAME = new javax.xml.namespace.QName("http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc", "mdfeCabecMsg", "ns2"); + + /** + * field for MdfeCabecMsg + */ + + protected MdfeCabecMsg localMdfeCabecMsg; + + /** + * Auto generated getter method + * @return MdfeCabecMsg + */ + public MdfeCabecMsg getMdfeCabecMsg() { + return this.localMdfeCabecMsg; + } + + /** + * Auto generated setter method + * @param param MdfeCabecMsg + */ + public void setMdfeCabecMsg(final MdfeCabecMsg param) { + this.localMdfeCabecMsg = param; + } + + /** + * @param parentQName + * @param factory + * @return org.apache.axiom.om.OMElement + */ + @Override + public org.apache.axiom.om.OMElement getOMElement(final javax.xml.namespace.QName parentQName, final org.apache.axiom.om.OMFactory factory) { + final org.apache.axiom.om.OMDataSource dataSource = new org.apache.axis2.databinding.ADBDataSource(this, MdfeCabecMsgE.MY_QNAME); + return factory.createOMElement(dataSource, MdfeCabecMsgE.MY_QNAME); + } + + @Override + public void serialize(final javax.xml.namespace.QName parentQName, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + this.serialize(parentQName, xmlWriter, false); + } + + @Override + public void serialize(final javax.xml.namespace.QName parentQName, final javax.xml.stream.XMLStreamWriter xmlWriter, final boolean serializeType) throws javax.xml.stream.XMLStreamException { + // We can safely assume an element has only one type associated with it + if (this.localMdfeCabecMsg == null) { + throw new org.apache.axis2.databinding.ADBException("mdfeCabecMsg cannot be null!"); + } + this.localMdfeCabecMsg.serialize(MdfeCabecMsgE.MY_QNAME, xmlWriter); + } + + private static java.lang.String generatePrefix(final java.lang.String namespace) { + if (namespace.equals("http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc")) { + return "ns2"; + } + return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix(); + } + + /** + * Utility method to write an element start tag. + */ + @SuppressWarnings("unused") + private void writeStartElement(java.lang.String prefix, final java.lang.String namespace, final java.lang.String localPart, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + final java.lang.String writerPrefix = xmlWriter.getPrefix(namespace); + if (writerPrefix != null) { + xmlWriter.writeStartElement(namespace, localPart); + } else { + if (namespace.length() == 0) { + prefix = ""; + } else if (prefix == null) { + prefix = MdfeCabecMsgE.generatePrefix(namespace); + } + xmlWriter.writeStartElement(prefix, localPart, namespace); + xmlWriter.writeNamespace(prefix, namespace); + xmlWriter.setPrefix(prefix, namespace); + } + } + + /** + * Util method to write an attribute with the ns prefix + */ + @SuppressWarnings("unused") + private void writeAttribute(final java.lang.String prefix, final java.lang.String namespace, final java.lang.String attName, final java.lang.String attValue, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + if (xmlWriter.getPrefix(namespace) == null) { + xmlWriter.writeNamespace(prefix, namespace); + xmlWriter.setPrefix(prefix, namespace); + } + xmlWriter.writeAttribute(namespace, attName, attValue); + } + + /** + * Util method to write an attribute without the ns prefix + */ + @SuppressWarnings("unused") + private void writeAttribute(final java.lang.String namespace, final java.lang.String attName, final java.lang.String attValue, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + if (namespace.equals("")) { + xmlWriter.writeAttribute(attName, attValue); + } else { + this.registerPrefix(xmlWriter, namespace); + xmlWriter.writeAttribute(namespace, attName, attValue); + } + } + + /** + * Util method to write an attribute without the ns prefix + */ + @SuppressWarnings("unused") + private void writeQNameAttribute(final java.lang.String namespace, final java.lang.String attName, final javax.xml.namespace.QName qname, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + final java.lang.String attributeNamespace = qname.getNamespaceURI(); + java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace); + if (attributePrefix == null) { + attributePrefix = this.registerPrefix(xmlWriter, attributeNamespace); + } + java.lang.String attributeValue; + if (attributePrefix.trim().length() > 0) { + attributeValue = attributePrefix + ":" + qname.getLocalPart(); + } else { + attributeValue = qname.getLocalPart(); + } + if (namespace.equals("")) { + xmlWriter.writeAttribute(attName, attributeValue); + } else { + this.registerPrefix(xmlWriter, namespace); + xmlWriter.writeAttribute(namespace, attName, attributeValue); + } + } + + /** + * method to handle Qnames + */ + + @SuppressWarnings("unused") + private void writeQName(final javax.xml.namespace.QName qname, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + final java.lang.String namespaceURI = qname.getNamespaceURI(); + if (namespaceURI != null) { + java.lang.String prefix = xmlWriter.getPrefix(namespaceURI); + if (prefix == null) { + prefix = MdfeCabecMsgE.generatePrefix(namespaceURI); + xmlWriter.writeNamespace(prefix, namespaceURI); + xmlWriter.setPrefix(prefix, namespaceURI); + } + if (prefix.trim().length() > 0) { + xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname)); + } else { + // i.e this is the default namespace + xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname)); + } + } else { + xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname)); + } + } + + @SuppressWarnings("unused") + private void writeQNames(final javax.xml.namespace.QName[] qnames, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + if (qnames != null) { + // we have to store this data until last moment since it is not possible to write any + // namespace data after writing the charactor data + final StringBuilder stringToWrite = new StringBuilder(); + java.lang.String namespaceURI; + java.lang.String prefix; + for (int i = 0; i < qnames.length; i++) { + if (i > 0) { + stringToWrite.append(" "); + } + namespaceURI = qnames[i].getNamespaceURI(); + if (namespaceURI != null) { + prefix = xmlWriter.getPrefix(namespaceURI); + if ((prefix == null) || (prefix.length() == 0)) { + prefix = MdfeCabecMsgE.generatePrefix(namespaceURI); + xmlWriter.writeNamespace(prefix, namespaceURI); + xmlWriter.setPrefix(prefix, namespaceURI); + } + if (prefix.trim().length() > 0) { + stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i])); + } else { + stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i])); + } + } else { + stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i])); + } + } + xmlWriter.writeCharacters(stringToWrite.toString()); + } + } + + /** + * Register a namespace prefix + */ + private java.lang.String registerPrefix(final javax.xml.stream.XMLStreamWriter xmlWriter, final java.lang.String namespace) throws javax.xml.stream.XMLStreamException { + java.lang.String prefix = xmlWriter.getPrefix(namespace); + if (prefix == null) { + prefix = MdfeCabecMsgE.generatePrefix(namespace); + final javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext(); + while (true) { + final java.lang.String uri = nsContext.getNamespaceURI(prefix); + if (uri == null || uri.length() == 0) { + break; + } + prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix(); + } + xmlWriter.writeNamespace(prefix, namespace); + xmlWriter.setPrefix(prefix, namespace); + } + return prefix; + } + + /** + * Factory class that keeps the parse method + */ + public static class Factory { + + /** + * static method to create the object Precondition: If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable If this object is not an element, it is a complex type and the reader is at the event just after the outer start element Postcondition: If this object is an element, the reader is positioned at its end element If this object is a complex type, the reader is positioned at the end element of its outer element + */ + @SuppressWarnings({ "unused", "rawtypes" }) + public static MdfeCabecMsgE parse(final javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception { + final MdfeCabecMsgE object = new MdfeCabecMsgE(); + final int event; + final java.lang.String nillableValue = null; + final java.lang.String prefix = ""; + final java.lang.String namespaceuri = ""; + try { + while (!reader.isStartElement() && !reader.isEndElement()) { + reader.next(); + } + // Note all attributes that were handled. Used to differ normal attributes + // from anyAttributes. + final java.util.Vector handledAttributes = new java.util.Vector(); + while (!reader.isEndElement()) { + if (reader.isStartElement()) { + if (reader.isStartElement() && new javax.xml.namespace.QName("http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc", "mdfeCabecMsg").equals(reader.getName())) { + object.setMdfeCabecMsg(MdfeCabecMsg.Factory.parse(reader)); + } // End of if for expected property start element + else { + // A start element we are not expecting indicates an invalid parameter was passed + throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getName()); + } + } else { + reader.next(); + } + } // end of while loop + } catch (final javax.xml.stream.XMLStreamException e) { + throw new java.lang.Exception(e); + } + return object; + } + }// end of factory class + } + + @SuppressWarnings("serial") + public static class MdfeDadosMsg implements org.apache.axis2.databinding.ADBBean { + + public static final javax.xml.namespace.QName MY_QNAME = new javax.xml.namespace.QName("http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc", "mdfeDadosMsg", "ns2"); + + /** + * field for ExtraElement + */ + + protected String localExtraElement; + + /** + * Auto generated getter method + * @return org.apache.axiom.om.OMElement + */ + public String getExtraElement() { + return this.localExtraElement; + } + + /** + * Auto generated setter method + * @param param ExtraElement + */ + public void setExtraElement(final String param) { + this.localExtraElement = param; + } + + /** + * @param parentQName + * @param factory + * @return org.apache.axiom.om.OMElement + */ + @Override + public org.apache.axiom.om.OMElement getOMElement(final javax.xml.namespace.QName parentQName, final org.apache.axiom.om.OMFactory factory) { + final org.apache.axiom.om.OMDataSource dataSource = new org.apache.axis2.databinding.ADBDataSource(this, MdfeDadosMsg.MY_QNAME); + return factory.createOMElement(dataSource, MdfeDadosMsg.MY_QNAME); + } + + @Override + public void serialize(final javax.xml.namespace.QName parentQName, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + this.serialize(parentQName, xmlWriter, false); + } + + @Override + public void serialize(final javax.xml.namespace.QName parentQName, final javax.xml.stream.XMLStreamWriter xmlWriter, final boolean serializeType) throws javax.xml.stream.XMLStreamException { + java.lang.String prefix; + java.lang.String namespace; + prefix = parentQName.getPrefix(); + namespace = parentQName.getNamespaceURI(); + this.writeStartElement(prefix, namespace, parentQName.getLocalPart(), xmlWriter); + if (serializeType) { + final java.lang.String namespacePrefix = this.registerPrefix(xmlWriter, "http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc"); + if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)) { + this.writeAttribute("xsi", "http://www.w3.org/2001/XMLSchema-instance", "type", namespacePrefix + ":mdfeDadosMsg", xmlWriter); + } else { + this.writeAttribute("xsi", "http://www.w3.org/2001/XMLSchema-instance", "type", "mdfeDadosMsg", xmlWriter); + } + } + if (localExtraElement == null) { + throw new org.apache.axis2.databinding.ADBException( + "cteDadosMsg cannot be null !!"); + } else { + xmlWriter.writeCharacters(localExtraElement); + } + + xmlWriter.writeEndElement(); + } + + private static java.lang.String generatePrefix(final java.lang.String namespace) { + if (namespace.equals("http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc")) { + return "ns2"; + } + return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix(); + } + + /** + * Utility method to write an element start tag. + */ + private void writeStartElement(java.lang.String prefix, final java.lang.String namespace, final java.lang.String localPart, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + final java.lang.String writerPrefix = xmlWriter.getPrefix(namespace); + if (writerPrefix != null) { + xmlWriter.writeStartElement(namespace, localPart); + } else { + if (namespace.length() == 0) { + prefix = ""; + } else if (prefix == null) { + prefix = MdfeDadosMsg.generatePrefix(namespace); + } + xmlWriter.writeStartElement(prefix, localPart, namespace); + xmlWriter.writeNamespace(prefix, namespace); + xmlWriter.setPrefix(prefix, namespace); + } + } + + /** + * Util method to write an attribute with the ns prefix + */ + private void writeAttribute(final java.lang.String prefix, final java.lang.String namespace, final java.lang.String attName, final java.lang.String attValue, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + if (xmlWriter.getPrefix(namespace) == null) { + xmlWriter.writeNamespace(prefix, namespace); + xmlWriter.setPrefix(prefix, namespace); + } + xmlWriter.writeAttribute(namespace, attName, attValue); + } + + /** + * Util method to write an attribute without the ns prefix + */ + @SuppressWarnings("unused") + private void writeAttribute(final java.lang.String namespace, final java.lang.String attName, final java.lang.String attValue, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + if (namespace.equals("")) { + xmlWriter.writeAttribute(attName, attValue); + } else { + this.registerPrefix(xmlWriter, namespace); + xmlWriter.writeAttribute(namespace, attName, attValue); + } + } + + /** + * Util method to write an attribute without the ns prefix + */ + @SuppressWarnings("unused") + private void writeQNameAttribute(final java.lang.String namespace, final java.lang.String attName, final javax.xml.namespace.QName qname, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + final java.lang.String attributeNamespace = qname.getNamespaceURI(); + java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace); + if (attributePrefix == null) { + attributePrefix = this.registerPrefix(xmlWriter, attributeNamespace); + } + java.lang.String attributeValue; + if (attributePrefix.trim().length() > 0) { + attributeValue = attributePrefix + ":" + qname.getLocalPart(); + } else { + attributeValue = qname.getLocalPart(); + } + if (namespace.equals("")) { + xmlWriter.writeAttribute(attName, attributeValue); + } else { + this.registerPrefix(xmlWriter, namespace); + xmlWriter.writeAttribute(namespace, attName, attributeValue); + } + } + + /** + * method to handle Qnames + */ + + @SuppressWarnings("unused") + private void writeQName(final javax.xml.namespace.QName qname, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + final java.lang.String namespaceURI = qname.getNamespaceURI(); + if (namespaceURI != null) { + java.lang.String prefix = xmlWriter.getPrefix(namespaceURI); + if (prefix == null) { + prefix = MdfeDadosMsg.generatePrefix(namespaceURI); + xmlWriter.writeNamespace(prefix, namespaceURI); + xmlWriter.setPrefix(prefix, namespaceURI); + } + if (prefix.trim().length() > 0) { + xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname)); + } else { + // i.e this is the default namespace + xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname)); + } + } else { + xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname)); + } + } + + @SuppressWarnings("unused") + private void writeQNames(final javax.xml.namespace.QName[] qnames, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + if (qnames != null) { + // we have to store this data until last moment since it is not possible to write any + // namespace data after writing the charactor data + final StringBuilder stringToWrite = new StringBuilder(); + java.lang.String namespaceURI; + java.lang.String prefix; + for (int i = 0; i < qnames.length; i++) { + if (i > 0) { + stringToWrite.append(" "); + } + namespaceURI = qnames[i].getNamespaceURI(); + if (namespaceURI != null) { + prefix = xmlWriter.getPrefix(namespaceURI); + if ((prefix == null) || (prefix.length() == 0)) { + prefix = MdfeDadosMsg.generatePrefix(namespaceURI); + xmlWriter.writeNamespace(prefix, namespaceURI); + xmlWriter.setPrefix(prefix, namespaceURI); + } + if (prefix.trim().length() > 0) { + stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i])); + } else { + stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i])); + } + } else { + stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i])); + } + } + xmlWriter.writeCharacters(stringToWrite.toString()); + } + } + + /** + * Register a namespace prefix + */ + private java.lang.String registerPrefix(final javax.xml.stream.XMLStreamWriter xmlWriter, final java.lang.String namespace) throws javax.xml.stream.XMLStreamException { + java.lang.String prefix = xmlWriter.getPrefix(namespace); + if (prefix == null) { + prefix = MdfeDadosMsg.generatePrefix(namespace); + final javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext(); + while (true) { + final java.lang.String uri = nsContext.getNamespaceURI(prefix); + if (uri == null || uri.length() == 0) { + break; + } + prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix(); + } + xmlWriter.writeNamespace(prefix, namespace); + xmlWriter.setPrefix(prefix, namespace); + } + return prefix; + } + + /** + * Factory class that keeps the parse method + */ + public static class Factory { + + /** + * static method to create the object Precondition: If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable If this object is not an element, it is a complex type and the reader is at the event just after the outer start element Postcondition: If this object is an element, the reader is positioned at its end element If this object is a complex type, the reader is positioned at the end element of its outer element + */ + @SuppressWarnings({ "unused", "rawtypes" }) + public static MdfeRecepcaoSincResult parse(final javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception { + final MdfeRecepcaoSincResult object = new MdfeRecepcaoSincResult(); + final int event; + final java.lang.String nillableValue = null; + final java.lang.String prefix = ""; + final java.lang.String namespaceuri = ""; + try { + while (!reader.isStartElement() && !reader.isEndElement()) { + reader.next(); + } + if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance", "type") != null) { + final java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance", "type"); + if (fullTypeName != null) { + java.lang.String nsPrefix = null; + if (fullTypeName.contains(":")) { + nsPrefix = fullTypeName.substring(0, fullTypeName.indexOf(":")); + } + nsPrefix = nsPrefix == null ? "" : nsPrefix; + final java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":") + 1); + if (!"mdfeDadosMsg".equals(type)) { + // find namespace for the prefix + final java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix); + return (MdfeRecepcaoSincResult) ExtensionMapper.getTypeObject(nsUri, type, reader); + } + } + } + // Note all attributes that were handled. Used to differ normal attributes + // from anyAttributes. + final java.util.Vector handledAttributes = new java.util.Vector(); + reader.next(); + while (!reader.isStartElement() && !reader.isEndElement()) { + reader.next(); + } + if (reader.isStartElement()) { + // use the QName from the parser as the name for the builder + final javax.xml.namespace.QName startQname1 = reader.getName(); + // We need to wrap the reader so that it produces a fake START_DOCUMENT event + // this is needed by the builder classes + final org.apache.axis2.databinding.utils.NamedStaxOMBuilder builder1 = new org.apache.axis2.databinding.utils.NamedStaxOMBuilder(new org.apache.axis2.util.StreamWrapper(reader), startQname1); + object.setExtraElement(builder1.getOMElement()); + reader.next(); + } // End of if for expected property start element + else { + // A start element we are not expecting indicates an invalid parameter was passed + throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getName()); + } + while (!reader.isStartElement() && !reader.isEndElement()) { + reader.next(); + } + if (reader.isStartElement()) { + // A start element we are not expecting indicates a trailing invalid property + throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getName()); + } + } catch (final javax.xml.stream.XMLStreamException e) { + throw new java.lang.Exception(e); + } + return object; + } + }// end of factory class + } + // private org.apache.axiom.om.OMElement toOM(com.fincatto.documentofiscal.mdfe3.webservices.recepcao.MDFeRecepcaoStub.MdfeDadosMsg param, boolean optimizeContent) throws org.apache.axis2.AxisFault { + // try { + // return param.getOMElement(com.fincatto.documentofiscal.mdfe3.webservices.recepcao.MDFeRecepcaoStub.MdfeDadosMsg.MY_QNAME, org.apache.axiom.om.OMAbstractFactory.getOMFactory()); + // } catch (org.apache.axis2.databinding.ADBException e) { + // throw org.apache.axis2.AxisFault.makeFault(e); + // } + // } + // + // private org.apache.axiom.om.OMElement toOM(com.fincatto.documentofiscal.mdfe3.webservices.recepcao.MDFeRecepcaoStub.MdfeRecepcaoLoteResult param, boolean optimizeContent) throws org.apache.axis2.AxisFault { + // try { + // return param.getOMElement(com.fincatto.documentofiscal.mdfe3.webservices.recepcao.MDFeRecepcaoStub.MdfeRecepcaoLoteResult.MY_QNAME, org.apache.axiom.om.OMAbstractFactory.getOMFactory()); + // } catch (org.apache.axis2.databinding.ADBException e) { + // throw org.apache.axis2.AxisFault.makeFault(e); + // } + // } + + private org.apache.axiom.om.OMElement toOM(final com.fincatto.documentofiscal.mdfe3.webservices.recepcao.MDFeRecepcaoSincStub.MdfeCabecMsgE param, final boolean optimizeContent) { + // try { + return param.getOMElement(com.fincatto.documentofiscal.mdfe3.webservices.recepcao.MDFeRecepcaoSincStub.MdfeCabecMsgE.MY_QNAME, org.apache.axiom.om.OMAbstractFactory.getOMFactory()); + // } catch (org.apache.axis2.databinding.ADBException e) { + // throw org.apache.axis2.AxisFault.makeFault(e); + // } + } + + private org.apache.axiom.soap.SOAPEnvelope toEnvelope(final org.apache.axiom.soap.SOAPFactory factory, final com.fincatto.documentofiscal.mdfe3.webservices.recepcao.MDFeRecepcaoSincStub.MdfeDadosMsg param, final boolean optimizeContent, final javax.xml.namespace.QName methodQName) { + // try { + final org.apache.axiom.soap.SOAPEnvelope emptyEnvelope = factory.getDefaultEnvelope(); + // remove o header + emptyEnvelope.getHeader().discard(); + emptyEnvelope.getBody().addChild(param.getOMElement(com.fincatto.documentofiscal.mdfe3.webservices.recepcao.MDFeRecepcaoSincStub.MdfeDadosMsg.MY_QNAME, factory)); + return emptyEnvelope; + // } catch (org.apache.axis2.databinding.ADBException e) { + // throw org.apache.axis2.AxisFault.makeFault(e); + // } + } + + /* methods to provide back word compatibility */ + + /** + * get the default envelope + */ + @SuppressWarnings("unused") + private org.apache.axiom.soap.SOAPEnvelope toEnvelope(final org.apache.axiom.soap.SOAPFactory factory) { + return factory.getDefaultEnvelope(); + } + + @SuppressWarnings("rawtypes") + private java.lang.Object fromOM(final org.apache.axiom.om.OMElement param, final java.lang.Class type, final java.util.Map extraNamespaces) throws org.apache.axis2.AxisFault { + try { + if (com.fincatto.documentofiscal.mdfe3.webservices.recepcao.MDFeRecepcaoSincStub.MdfeDadosMsg.class.equals(type)) { + return com.fincatto.documentofiscal.mdfe3.webservices.recepcao.MDFeRecepcaoSincStub.MdfeDadosMsg.Factory.parse(param.getXMLStreamReaderWithoutCaching()); + } + if (com.fincatto.documentofiscal.mdfe3.webservices.recepcao.MDFeRecepcaoSincStub.MdfeRecepcaoSincResult.class.equals(type)) { + return com.fincatto.documentofiscal.mdfe3.webservices.recepcao.MDFeRecepcaoSincStub.MdfeRecepcaoSincResult.Factory.parse(param.getXMLStreamReaderWithoutCaching()); + } + if (com.fincatto.documentofiscal.mdfe3.webservices.recepcao.MDFeRecepcaoSincStub.MdfeCabecMsgE.class.equals(type)) { + return com.fincatto.documentofiscal.mdfe3.webservices.recepcao.MDFeRecepcaoSincStub.MdfeCabecMsgE.Factory.parse(param.getXMLStreamReaderWithoutCaching()); + } + } catch (final java.lang.Exception e) { + throw org.apache.axis2.AxisFault.makeFault(e); + } + return null; + } +} diff --git a/src/main/java/com/fincatto/documentofiscal/mdfe3/webservices/recepcao/MDFeRecepcaoSincStub1.java b/src/main/java/com/fincatto/documentofiscal/mdfe3/webservices/recepcao/MDFeRecepcaoSincStub1.java new file mode 100644 index 000000000..90468073f --- /dev/null +++ b/src/main/java/com/fincatto/documentofiscal/mdfe3/webservices/recepcao/MDFeRecepcaoSincStub1.java @@ -0,0 +1,1592 @@ +/* + * MDFeRecepcaoSincStub.java

This file was auto-generated from WSDL by the Apache Axis2 version: 1.6.2 Built on : Apr 17, 2012 (05:33:49 IST) + */ +package com.fincatto.documentofiscal.mdfe3.webservices.recepcao; + +import javax.xml.namespace.QName; + +import org.apache.axiom.om.OMAttribute; +import org.apache.axis2.client.Stub; + +import com.fincatto.documentofiscal.DFConfig; +import com.fincatto.documentofiscal.utils.MessageContextFactory; + +/* + * MDFeRecepcaoSincStub java implementation + */ + +public class MDFeRecepcaoSincStub1 extends org.apache.axis2.client.Stub { + protected org.apache.axis2.description.AxisOperation[] _operations; + + // hashmaps to keep the fault mapping + @SuppressWarnings("rawtypes") + private final java.util.HashMap faultExceptionNameMap = new java.util.HashMap(); + @SuppressWarnings("rawtypes") + private final java.util.HashMap faultExceptionClassNameMap = new java.util.HashMap(); + @SuppressWarnings("rawtypes") + private final java.util.HashMap faultMessageMap = new java.util.HashMap(); + + private static int counter = 0; + + private static synchronized java.lang.String getUniqueSuffix() { + // reset the counter if it is greater than 99999 + if (MDFeRecepcaoSincStub1.counter > 99999) { + MDFeRecepcaoSincStub1.counter = 0; + } + MDFeRecepcaoSincStub1.counter = MDFeRecepcaoSincStub1.counter + 1; + return System.currentTimeMillis() + "_" + MDFeRecepcaoSincStub1.counter; + } + + private void populateAxisService() { + // creating the Service with a unique name + this._service = new org.apache.axis2.description.AxisService("MDFeRecepcaoSinc" + MDFeRecepcaoSincStub1.getUniqueSuffix()); + this.addAnonymousOperations(); + // creating the operations + org.apache.axis2.description.AxisOperation __operation; + this._operations = new org.apache.axis2.description.AxisOperation[1]; + __operation = new org.apache.axis2.description.OutInAxisOperation(); + __operation.setName(new javax.xml.namespace.QName("http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc", "mdfeRecepcaoResult")); + this._service.addOperation(__operation); + this._operations[0] = __operation; + } + + // populates the faults + private void populateFaults() { + } + + /** + * Constructor that takes in a configContext + */ + + public MDFeRecepcaoSincStub1(final org.apache.axis2.context.ConfigurationContext configurationContext, final java.lang.String targetEndpoint, DFConfig config) throws org.apache.axis2.AxisFault { + this(configurationContext, targetEndpoint, false, config); + } + + /** + * Constructor that takes in a configContext and useseperate listner + */ + public MDFeRecepcaoSincStub1(final org.apache.axis2.context.ConfigurationContext configurationContext, final java.lang.String targetEndpoint, final boolean useSeparateListener, DFConfig config) throws org.apache.axis2.AxisFault { + // To populate AxisService + this.populateAxisService(); + this.populateFaults(); + this._serviceClient = new org.apache.axis2.client.ServiceClient(configurationContext, this._service); + this._serviceClient.getOptions().setTo(new org.apache.axis2.addressing.EndpointReference(targetEndpoint)); + this._serviceClient.getOptions().setUseSeparateListener(useSeparateListener); + // Set the soap version + this._serviceClient.getOptions().setSoapVersionURI(org.apache.axiom.soap.SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI); + this.config = config; + } + + /** + * Constructor taking the target endpoint + */ + public MDFeRecepcaoSincStub1(final java.lang.String targetEndpoint, DFConfig config) throws org.apache.axis2.AxisFault { + this(null, targetEndpoint, config); + } + + /** + * Auto generated method signature + * @param mdfeDadosMsg0 + * @param mdfeCabecMsg1 + */ + + @SuppressWarnings({ "rawtypes", "unchecked" }) + public com.fincatto.documentofiscal.mdfe3.webservices.recepcao.MDFeRecepcaoSincStub1.MdfeRecepcaoSincResult mdfeRecepcaoSinc(final com.fincatto.documentofiscal.mdfe3.webservices.recepcao.MDFeRecepcaoSincStub1.MdfeDadosMsg mdfeDadosMsg0) throws java.rmi.RemoteException { + org.apache.axis2.context.MessageContext _messageContext = null; + try { + final org.apache.axis2.client.OperationClient _operationClient = this._serviceClient.createClient(this._operations[0].getName()); + _operationClient.getOptions().setAction("http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc/mdfeRecepcao"); + _operationClient.getOptions().setExceptionToBeThrownOnSOAPFault(true); + this.addPropertyToOperationClient(_operationClient, org.apache.axis2.description.WSDL2Constants.ATTR_WHTTP_QUERY_PARAMETER_SEPARATOR, "&"); + // create a message context + _messageContext = MessageContextFactory.INSTANCE.create(config); + // create SOAP envelope with that payload + org.apache.axiom.soap.SOAPEnvelope env; + env = this.toEnvelope(Stub.getFactory(_operationClient.getOptions().getSoapVersionURI()), mdfeDadosMsg0, this.optimizeContent(new javax.xml.namespace.QName("http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc", "mdfeRecepcaoResult")), new javax.xml.namespace.QName("http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc", "mdfeRecepcaoResult")); + env.build(); +// // add the children only if the parameter is not null +// if (mdfeCabecMsg1 != null) { +// final org.apache.axiom.om.OMElement omElementmdfeCabecMsg1 = this.toOM(mdfeCabecMsg1, this.optimizeContent(new javax.xml.namespace.QName("http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc", "mdfeRecepcaoResult"))); +// this.addHeader(omElementmdfeCabecMsg1, env); +// } +// // adding SOAP soap_headers +// this._serviceClient.addHeadersToEnvelope(env); + // set the message context with that soap envelope + _messageContext.setEnvelope(env); + // add the message contxt to the operation client + _operationClient.addMessageContext(_messageContext); + // execute the operation client + _operationClient.execute(true); + final org.apache.axis2.context.MessageContext _returnMessageContext = _operationClient.getMessageContext(org.apache.axis2.wsdl.WSDLConstants.MESSAGE_LABEL_IN_VALUE); + final org.apache.axiom.soap.SOAPEnvelope _returnEnv = _returnMessageContext.getEnvelope(); + final java.lang.Object object = this.fromOM(_returnEnv.getBody().getFirstElement(), com.fincatto.documentofiscal.mdfe3.webservices.recepcao.MDFeRecepcaoSincStub1.MdfeRecepcaoSincResult.class, this.getEnvelopeNamespaces(_returnEnv)); + return (com.fincatto.documentofiscal.mdfe3.webservices.recepcao.MDFeRecepcaoSincStub1.MdfeRecepcaoSincResult) object; + } catch (final org.apache.axis2.AxisFault f) { + final org.apache.axiom.om.OMElement faultElt = f.getDetail(); + if (faultElt != null) { + if (this.faultExceptionNameMap.containsKey(new org.apache.axis2.client.FaultMapKey(faultElt.getQName(), "mdfeRecepcaoResult"))) { + // make the fault by reflection + try { + final java.lang.String exceptionClassName = (java.lang.String) this.faultExceptionClassNameMap.get(new org.apache.axis2.client.FaultMapKey(faultElt.getQName(), "mdfeRecepcaoResult")); + final java.lang.Class exceptionClass = java.lang.Class.forName(exceptionClassName); + final java.lang.reflect.Constructor constructor = exceptionClass.getConstructor(String.class); + final java.lang.Exception ex = (java.lang.Exception) constructor.newInstance(f.getMessage()); + // message class + final java.lang.String messageClassName = (java.lang.String) this.faultMessageMap.get(new org.apache.axis2.client.FaultMapKey(faultElt.getQName(), "mdfeRecepcaoResult")); + final java.lang.Class messageClass = java.lang.Class.forName(messageClassName); + final java.lang.Object messageObject = this.fromOM(faultElt, messageClass, null); + final java.lang.reflect.Method m = exceptionClass.getMethod("setFaultMessage", messageClass); + m.invoke(ex, messageObject); + throw new java.rmi.RemoteException(ex.getMessage(), ex); + } catch (ClassCastException | InstantiationException | IllegalAccessException | java.lang.reflect.InvocationTargetException | NoSuchMethodException | ClassNotFoundException e) { + // we cannot intantiate the class - throw the original Axis fault + throw f; + } + } else { + throw f; + } + } else { + throw f; + } + } finally { + if (_messageContext.getTransportOut() != null) { + _messageContext.getTransportOut().getSender().cleanup(_messageContext); + } + } + } + + /** + * Auto generated method signature for Asynchronous Invocations + * @param mdfeDadosMsg0 + * @param mdfeCabecMsg1 + */ + public void startmdfeRecepcaoSinc(final com.fincatto.documentofiscal.mdfe3.webservices.recepcao.MDFeRecepcaoSincStub1.MdfeDadosMsg mdfeDadosMsg0, final com.fincatto.documentofiscal.mdfe3.webservices.recepcao.MDFeRecepcaoSincStub1.MdfeCabecMsgE mdfeCabecMsg1, final com.fincatto.documentofiscal.mdfe3.webservices.recepcao.MDFeRecepcaoSincCallbackHandler callback) throws java.rmi.RemoteException { + final org.apache.axis2.client.OperationClient _operationClient = this._serviceClient.createClient(this._operations[0].getName()); + _operationClient.getOptions().setAction("http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc/mdfeRecepcao"); + _operationClient.getOptions().setExceptionToBeThrownOnSOAPFault(true); + this.addPropertyToOperationClient(_operationClient, org.apache.axis2.description.WSDL2Constants.ATTR_WHTTP_QUERY_PARAMETER_SEPARATOR, "&"); + // create SOAP envelope with that payload + org.apache.axiom.soap.SOAPEnvelope env; + final org.apache.axis2.context.MessageContext _messageContext = MessageContextFactory.INSTANCE.create(config); + // Style is Doc. + env = this.toEnvelope(Stub.getFactory(_operationClient.getOptions().getSoapVersionURI()), mdfeDadosMsg0, this.optimizeContent(new javax.xml.namespace.QName("http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc", "mdfeRecepcaoResult")), new javax.xml.namespace.QName("http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc", "mdfeRecepcaoResult")); + // add the soap_headers only if they are not null + if (mdfeCabecMsg1 != null) { + final org.apache.axiom.om.OMElement omElementmdfeCabecMsg1 = this.toOM(mdfeCabecMsg1, this.optimizeContent(new javax.xml.namespace.QName("http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc", "mdfeRecepcaoResult"))); + this.addHeader(omElementmdfeCabecMsg1, env); + } + // adding SOAP soap_headers + this._serviceClient.addHeadersToEnvelope(env); + // create message context with that soap envelope + _messageContext.setEnvelope(env); + // add the message context to the operation client + _operationClient.addMessageContext(_messageContext); + _operationClient.setCallback(new org.apache.axis2.client.async.AxisCallback() { + @Override + public void onMessage(final org.apache.axis2.context.MessageContext resultContext) { + try { + final org.apache.axiom.soap.SOAPEnvelope resultEnv = resultContext.getEnvelope(); + final java.lang.Object object = MDFeRecepcaoSincStub1.this.fromOM(resultEnv.getBody().getFirstElement(), com.fincatto.documentofiscal.mdfe3.webservices.recepcao.MDFeRecepcaoSincStub1.MdfeRecepcaoSincResult.class, MDFeRecepcaoSincStub1.this.getEnvelopeNamespaces(resultEnv)); + ////callback.receiveResultmdfeRecepcaoSinc((com.fincatto.documentofiscal.mdfe3.webservices.recepcao.MDFeRecepcaoSincStub1.MdfeRecepcaoSincResult) object); + } catch (final org.apache.axis2.AxisFault e) { + callback.receiveErrormdfeRecepcaoSinc(e); + } + } + + @SuppressWarnings({ "rawtypes", "unchecked" }) + @Override + public void onError(final java.lang.Exception error) { + if (error instanceof org.apache.axis2.AxisFault) { + final org.apache.axis2.AxisFault f = (org.apache.axis2.AxisFault) error; + final org.apache.axiom.om.OMElement faultElt = f.getDetail(); + if (faultElt != null) { + if (MDFeRecepcaoSincStub1.this.faultExceptionNameMap.containsKey(new org.apache.axis2.client.FaultMapKey(faultElt.getQName(), "mdfeRecepcaoResult"))) { + // make the fault by reflection + try { + final java.lang.String exceptionClassName = (java.lang.String) MDFeRecepcaoSincStub1.this.faultExceptionClassNameMap.get(new org.apache.axis2.client.FaultMapKey(faultElt.getQName(), "mdfeRecepcaoResult")); + final java.lang.Class exceptionClass = java.lang.Class.forName(exceptionClassName); + final java.lang.reflect.Constructor constructor = exceptionClass.getConstructor(String.class); + final java.lang.Exception ex = (java.lang.Exception) constructor.newInstance(f.getMessage()); + // message class + final java.lang.String messageClassName = (java.lang.String) MDFeRecepcaoSincStub1.this.faultMessageMap.get(new org.apache.axis2.client.FaultMapKey(faultElt.getQName(), "mdfeRecepcaoResult")); + final java.lang.Class messageClass = java.lang.Class.forName(messageClassName); + final java.lang.Object messageObject = MDFeRecepcaoSincStub1.this.fromOM(faultElt, messageClass, null); + final java.lang.reflect.Method m = exceptionClass.getMethod("setFaultMessage", messageClass); + m.invoke(ex, messageObject); + callback.receiveErrormdfeRecepcaoSinc(new java.rmi.RemoteException(ex.getMessage(), ex)); + } catch (ClassCastException | org.apache.axis2.AxisFault | InstantiationException | IllegalAccessException | java.lang.reflect.InvocationTargetException | NoSuchMethodException | ClassNotFoundException e) { + // we cannot intantiate the class - throw the original Axis fault + callback.receiveErrormdfeRecepcaoSinc(f); + } + } else { + callback.receiveErrormdfeRecepcaoSinc(f); + } + } else { + callback.receiveErrormdfeRecepcaoSinc(f); + } + } else { + callback.receiveErrormdfeRecepcaoSinc(error); + } + } + + @Override + public void onFault(final org.apache.axis2.context.MessageContext faultContext) { + final org.apache.axis2.AxisFault fault = org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(faultContext); + this.onError(fault); + } + + @Override + public void onComplete() { + try { + _messageContext.getTransportOut().getSender().cleanup(_messageContext); + } catch (final org.apache.axis2.AxisFault axisFault) { + callback.receiveErrormdfeRecepcaoSinc(axisFault); + } + } + }); + org.apache.axis2.util.CallbackReceiver _callbackReceiver; + if (this._operations[0].getMessageReceiver() == null && _operationClient.getOptions().isUseSeparateListener()) { + _callbackReceiver = new org.apache.axis2.util.CallbackReceiver(); + this._operations[0].setMessageReceiver(_callbackReceiver); + } + // execute the operation client + _operationClient.execute(false); + } + + /** + * A utility method that copies the namepaces from the SOAPEnvelope + */ + @SuppressWarnings({ "rawtypes", "unchecked" }) + private java.util.Map getEnvelopeNamespaces(final org.apache.axiom.soap.SOAPEnvelope env) { + final java.util.Map returnMap = new java.util.HashMap(); + final java.util.Iterator namespaceIterator = env.getAllDeclaredNamespaces(); + while (namespaceIterator.hasNext()) { + final org.apache.axiom.om.OMNamespace ns = (org.apache.axiom.om.OMNamespace) namespaceIterator.next(); + returnMap.put(ns.getPrefix(), ns.getNamespaceURI()); + } + return returnMap; + } + + private final javax.xml.namespace.QName[] opNameArray = null; + private final DFConfig config; + + private boolean optimizeContent(final javax.xml.namespace.QName opName) { + if (this.opNameArray == null) { + return false; + } + for (final QName anOpNameArray : this.opNameArray) { + if (opName.equals(anOpNameArray)) { + return true; + } + } + return false; + } + + // https://mdfe.sefaz.rs.gov.br/ws/MDFerecepcao/MDFeRecepcaoSinc.asmx + public static class ExtensionMapper { + + public static java.lang.Object getTypeObject(final java.lang.String namespaceURI, final java.lang.String typeName, final javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception { + if ("http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc".equals(namespaceURI) && "mdfeCabecMsg".equals(typeName)) { + return MdfeCabecMsg.Factory.parse(reader); + } + throw new org.apache.axis2.databinding.ADBException("Unsupported type " + namespaceURI + " " + typeName); + } + } + + @SuppressWarnings("serial") + public static class MdfeCabecMsg implements org.apache.axis2.databinding.ADBBean { + /* + * This type was generated from the piece of schema that had name = mdfeCabecMsg Namespace URI = http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc Namespace Prefix = ns2 + */ + + /** + * field for CUF + */ + + protected java.lang.String localCUF; + + /* + * This tracker boolean wil be used to detect whether the user called the set method for this attribute. It will be used to determine whether to include this field in the serialized XML + */ + protected boolean localCUFTracker = false; + + public boolean isCUFSpecified() { + return this.localCUFTracker; + } + + /** + * Auto generated getter method + * @return java.lang.String + */ + public java.lang.String getCUF() { + return this.localCUF; + } + + /** + * Auto generated setter method + * @param param CUF + */ + public void setCUF(final java.lang.String param) { + this.localCUFTracker = param != null; + this.localCUF = param; + } + + /** + * field for VersaoDados + */ + + protected java.lang.String localVersaoDados; + + /* + * This tracker boolean wil be used to detect whether the user called the set method for this attribute. It will be used to determine whether to include this field in the serialized XML + */ + protected boolean localVersaoDadosTracker = false; + + public boolean isVersaoDadosSpecified() { + return this.localVersaoDadosTracker; + } + + /** + * Auto generated getter method + * @return java.lang.String + */ + public java.lang.String getVersaoDados() { + return this.localVersaoDados; + } + + /** + * Auto generated setter method + * @param param VersaoDados + */ + public void setVersaoDados(final java.lang.String param) { + this.localVersaoDadosTracker = param != null; + this.localVersaoDados = param; + } + + /** + * field for ExtraAttributes This was an Attribute! This was an Array! + */ + + protected org.apache.axiom.om.OMAttribute[] localExtraAttributes; + + /** + * Auto generated getter method + * @return org.apache.axiom.om.OMAttribute[] + */ + public org.apache.axiom.om.OMAttribute[] getExtraAttributes() { + return this.localExtraAttributes; + } + + /** + * validate the array for ExtraAttributes + */ + protected void validateExtraAttributes(final org.apache.axiom.om.OMAttribute[] param) { + if ((param != null) && (param.length > 1)) { + throw new java.lang.RuntimeException(); + } + if ((param != null) && (param.length < 1)) { + throw new java.lang.RuntimeException(); + } + } + + /** + * Auto generated setter method + * @param param ExtraAttributes + */ + public void setExtraAttributes(final org.apache.axiom.om.OMAttribute[] param) { + this.validateExtraAttributes(param); + this.localExtraAttributes = param; + } + + /** + * Auto generated add method for the array for convenience + * @param param org.apache.axiom.om.OMAttribute + */ + @SuppressWarnings({ "rawtypes", "unchecked" }) + public void addExtraAttributes(final org.apache.axiom.om.OMAttribute param) { + if (this.localExtraAttributes == null) { + this.localExtraAttributes = new org.apache.axiom.om.OMAttribute[] {}; + } + final java.util.List list = org.apache.axis2.databinding.utils.ConverterUtil.toList(this.localExtraAttributes); + list.add(param); + this.localExtraAttributes = (org.apache.axiom.om.OMAttribute[]) list.toArray(new org.apache.axiom.om.OMAttribute[0]); + } + + /** + * @param parentQName + * @param factory + * @return org.apache.axiom.om.OMElement + */ + @Override + public org.apache.axiom.om.OMElement getOMElement(final javax.xml.namespace.QName parentQName, final org.apache.axiom.om.OMFactory factory) { + final org.apache.axiom.om.OMDataSource dataSource = new org.apache.axis2.databinding.ADBDataSource(this, parentQName); + return factory.createOMElement(dataSource, parentQName); + } + + @Override + public void serialize(final javax.xml.namespace.QName parentQName, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + this.serialize(parentQName, xmlWriter, false); + } + + @SuppressWarnings("deprecation") + @Override + public void serialize(final javax.xml.namespace.QName parentQName, final javax.xml.stream.XMLStreamWriter xmlWriter, final boolean serializeType) throws javax.xml.stream.XMLStreamException { + java.lang.String prefix; + java.lang.String namespace; + prefix = parentQName.getPrefix(); + namespace = parentQName.getNamespaceURI(); + this.writeStartElement(prefix, namespace, parentQName.getLocalPart(), xmlWriter); + if (serializeType) { + final java.lang.String namespacePrefix = this.registerPrefix(xmlWriter, "http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc"); + if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)) { + this.writeAttribute("xsi", "http://www.w3.org/2001/XMLSchema-instance", "type", namespacePrefix + ":mdfeCabecMsg", xmlWriter); + } else { + this.writeAttribute("xsi", "http://www.w3.org/2001/XMLSchema-instance", "type", "mdfeCabecMsg", xmlWriter); + } + } + if (this.localExtraAttributes != null) { + for (final OMAttribute localExtraAttribute : this.localExtraAttributes) { + this.writeAttribute(localExtraAttribute.getNamespace().getName(), localExtraAttribute.getLocalName(), localExtraAttribute.getAttributeValue(), xmlWriter); + } + } + if (this.localCUFTracker) { + namespace = "http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc"; + this.writeStartElement(null, namespace, "cUF", xmlWriter); + if (this.localCUF == null) { + // write the nil attribute + throw new org.apache.axis2.databinding.ADBException("cUF cannot be null!!"); + } else { + xmlWriter.writeCharacters(this.localCUF); + } + xmlWriter.writeEndElement(); + } + if (this.localVersaoDadosTracker) { + namespace = "http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc"; + this.writeStartElement(null, namespace, "versaoDados", xmlWriter); + if (this.localVersaoDados == null) { + // write the nil attribute + throw new org.apache.axis2.databinding.ADBException("versaoDados cannot be null!!"); + } else { + xmlWriter.writeCharacters(this.localVersaoDados); + } + xmlWriter.writeEndElement(); + } + xmlWriter.writeEndElement(); + } + + private static java.lang.String generatePrefix(final java.lang.String namespace) { + if (namespace.equals("http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc")) { + return "ns2"; + } + return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix(); + } + + /** + * Utility method to write an element start tag. + */ + private void writeStartElement(java.lang.String prefix, final java.lang.String namespace, final java.lang.String localPart, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + final java.lang.String writerPrefix = xmlWriter.getPrefix(namespace); + if (writerPrefix != null) { + xmlWriter.writeStartElement(namespace, localPart); + } else { + if (namespace.length() == 0) { + prefix = ""; + } else if (prefix == null) { + prefix = MdfeCabecMsg.generatePrefix(namespace); + } + xmlWriter.writeStartElement(prefix, localPart, namespace); + xmlWriter.writeNamespace(prefix, namespace); + xmlWriter.setPrefix(prefix, namespace); + } + } + + /** + * Util method to write an attribute with the ns prefix + */ + private void writeAttribute(final java.lang.String prefix, final java.lang.String namespace, final java.lang.String attName, final java.lang.String attValue, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + if (xmlWriter.getPrefix(namespace) == null) { + xmlWriter.writeNamespace(prefix, namespace); + xmlWriter.setPrefix(prefix, namespace); + } + xmlWriter.writeAttribute(namespace, attName, attValue); + } + + /** + * Util method to write an attribute without the ns prefix + */ + private void writeAttribute(final java.lang.String namespace, final java.lang.String attName, final java.lang.String attValue, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + if (namespace.equals("")) { + xmlWriter.writeAttribute(attName, attValue); + } else { + this.registerPrefix(xmlWriter, namespace); + xmlWriter.writeAttribute(namespace, attName, attValue); + } + } + + /** + * Util method to write an attribute without the ns prefix + */ + @SuppressWarnings("unused") + private void writeQNameAttribute(final java.lang.String namespace, final java.lang.String attName, final javax.xml.namespace.QName qname, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + final java.lang.String attributeNamespace = qname.getNamespaceURI(); + java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace); + if (attributePrefix == null) { + attributePrefix = this.registerPrefix(xmlWriter, attributeNamespace); + } + java.lang.String attributeValue; + if (attributePrefix.trim().length() > 0) { + attributeValue = attributePrefix + ":" + qname.getLocalPart(); + } else { + attributeValue = qname.getLocalPart(); + } + if (namespace.equals("")) { + xmlWriter.writeAttribute(attName, attributeValue); + } else { + this.registerPrefix(xmlWriter, namespace); + xmlWriter.writeAttribute(namespace, attName, attributeValue); + } + } + + /** + * method to handle Qnames + */ + + @SuppressWarnings("unused") + private void writeQName(final javax.xml.namespace.QName qname, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + final java.lang.String namespaceURI = qname.getNamespaceURI(); + if (namespaceURI != null) { + java.lang.String prefix = xmlWriter.getPrefix(namespaceURI); + if (prefix == null) { + prefix = MdfeCabecMsg.generatePrefix(namespaceURI); + xmlWriter.writeNamespace(prefix, namespaceURI); + xmlWriter.setPrefix(prefix, namespaceURI); + } + if (prefix.trim().length() > 0) { + xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname)); + } else { + // i.e this is the default namespace + xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname)); + } + } else { + xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname)); + } + } + + @SuppressWarnings("unused") + private void writeQNames(final javax.xml.namespace.QName[] qnames, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + if (qnames != null) { + // we have to store this data until last moment since it is not possible to write any + // namespace data after writing the charactor data + final StringBuilder stringToWrite = new StringBuilder(); + java.lang.String namespaceURI; + java.lang.String prefix; + for (int i = 0; i < qnames.length; i++) { + if (i > 0) { + stringToWrite.append(" "); + } + namespaceURI = qnames[i].getNamespaceURI(); + if (namespaceURI != null) { + prefix = xmlWriter.getPrefix(namespaceURI); + if ((prefix == null) || (prefix.length() == 0)) { + prefix = MdfeCabecMsg.generatePrefix(namespaceURI); + xmlWriter.writeNamespace(prefix, namespaceURI); + xmlWriter.setPrefix(prefix, namespaceURI); + } + if (prefix.trim().length() > 0) { + stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i])); + } else { + stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i])); + } + } else { + stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i])); + } + } + xmlWriter.writeCharacters(stringToWrite.toString()); + } + } + + /** + * Register a namespace prefix + */ + private java.lang.String registerPrefix(final javax.xml.stream.XMLStreamWriter xmlWriter, final java.lang.String namespace) throws javax.xml.stream.XMLStreamException { + java.lang.String prefix = xmlWriter.getPrefix(namespace); + if (prefix == null) { + prefix = MdfeCabecMsg.generatePrefix(namespace); + final javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext(); + while (true) { + final java.lang.String uri = nsContext.getNamespaceURI(prefix); + if (uri == null || uri.length() == 0) { + break; + } + prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix(); + } + xmlWriter.writeNamespace(prefix, namespace); + xmlWriter.setPrefix(prefix, namespace); + } + return prefix; + } + + /** + * Factory class that keeps the parse method + */ + public static class Factory { + + /** + * static method to create the object Precondition: If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable If this object is not an element, it is a complex type and the reader is at the event just after the outer start element Postcondition: If this object is an element, the reader is positioned at its end element If this object is a complex type, the reader is positioned at the end element of its outer element + */ + @SuppressWarnings({ "unused", "rawtypes" }) + public static MdfeCabecMsg parse(final javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception { + final MdfeCabecMsg object = new MdfeCabecMsg(); + final int event; + java.lang.String nillableValue; + final java.lang.String prefix = ""; + final java.lang.String namespaceuri = ""; + try { + while (!reader.isStartElement() && !reader.isEndElement()) { + reader.next(); + } + if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance", "type") != null) { + final java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance", "type"); + if (fullTypeName != null) { + java.lang.String nsPrefix = null; + if (fullTypeName.contains(":")) { + nsPrefix = fullTypeName.substring(0, fullTypeName.indexOf(":")); + } + nsPrefix = nsPrefix == null ? "" : nsPrefix; + final java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":") + 1); + if (!"mdfeCabecMsg".equals(type)) { + // find namespace for the prefix + final java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix); + return (MdfeCabecMsg) ExtensionMapper.getTypeObject(nsUri, type, reader); + } + } + } + // Note all attributes that were handled. Used to differ normal attributes + // from anyAttributes. + final java.util.Vector handledAttributes = new java.util.Vector(); + // now run through all any or extra attributes + // which were not reflected until now + for (int i = 0; i < reader.getAttributeCount(); i++) { + if (!handledAttributes.contains(reader.getAttributeLocalName(i))) { + // this is an anyAttribute and we create + // an OMAttribute for this + final org.apache.axiom.om.OMFactory factory = org.apache.axiom.om.OMAbstractFactory.getOMFactory(); + final org.apache.axiom.om.OMAttribute attr = factory.createOMAttribute(reader.getAttributeLocalName(i), factory.createOMNamespace(reader.getAttributeNamespace(i), reader.getAttributePrefix(i)), reader.getAttributeValue(i)); + // and add it to the extra attributes + object.addExtraAttributes(attr); + } + } + reader.next(); + while (!reader.isStartElement() && !reader.isEndElement()) { + reader.next(); + } + if (reader.isStartElement() && new javax.xml.namespace.QName("http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc", "cUF").equals(reader.getName())) { + nillableValue = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance", "nil"); + if ("true".equals(nillableValue) || "1".equals(nillableValue)) { + throw new org.apache.axis2.databinding.ADBException("The element: " + "cUF" + " cannot be null"); + } + final java.lang.String content = reader.getElementText(); + object.setCUF(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(content)); + reader.next(); + } // End of if for expected property start element + while (!reader.isStartElement() && !reader.isEndElement()) { + reader.next(); + } + if (reader.isStartElement() && new javax.xml.namespace.QName("http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc", "versaoDados").equals(reader.getName())) { + nillableValue = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance", "nil"); + if ("true".equals(nillableValue) || "1".equals(nillableValue)) { + throw new org.apache.axis2.databinding.ADBException("The element: " + "versaoDados" + " cannot be null"); + } + final java.lang.String content = reader.getElementText(); + object.setVersaoDados(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(content)); + reader.next(); + } // End of if for expected property start element + while (!reader.isStartElement() && !reader.isEndElement()) { + reader.next(); + } + if (reader.isStartElement()) { + // A start element we are not expecting indicates a trailing invalid property + throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getName()); + } + } catch (final javax.xml.stream.XMLStreamException e) { + throw new java.lang.Exception(e); + } + return object; + } + }// end of factory class + } + + @SuppressWarnings("serial") + public static class MdfeRecepcaoSincResult implements org.apache.axis2.databinding.ADBBean { + + public static final javax.xml.namespace.QName MY_QNAME = new javax.xml.namespace.QName("http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc", "mdfeRecepcaoResult", "ns2"); + + /** + * field for ExtraElement + */ + + protected org.apache.axiom.om.OMElement localExtraElement; + + /** + * Auto generated getter method + * @return org.apache.axiom.om.OMElement + */ + public org.apache.axiom.om.OMElement getExtraElement() { + return this.localExtraElement; + } + + /** + * Auto generated setter method + * @param param ExtraElement + */ + public void setExtraElement(final org.apache.axiom.om.OMElement param) { + this.localExtraElement = param; + } + + /** + * @param parentQName + * @param factory + * @return org.apache.axiom.om.OMElement + */ + @Override + public org.apache.axiom.om.OMElement getOMElement(final javax.xml.namespace.QName parentQName, final org.apache.axiom.om.OMFactory factory) { + final org.apache.axiom.om.OMDataSource dataSource = new org.apache.axis2.databinding.ADBDataSource(this, MdfeRecepcaoSincResult.MY_QNAME); + return factory.createOMElement(dataSource, MdfeRecepcaoSincResult.MY_QNAME); + } + + @Override + public void serialize(final javax.xml.namespace.QName parentQName, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + this.serialize(parentQName, xmlWriter, false); + } + + @Override + public void serialize(final javax.xml.namespace.QName parentQName, final javax.xml.stream.XMLStreamWriter xmlWriter, final boolean serializeType) throws javax.xml.stream.XMLStreamException { + java.lang.String prefix; + java.lang.String namespace; + prefix = parentQName.getPrefix(); + namespace = parentQName.getNamespaceURI(); + this.writeStartElement(prefix, namespace, parentQName.getLocalPart(), xmlWriter); + if (serializeType) { + final java.lang.String namespacePrefix = this.registerPrefix(xmlWriter, "http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc"); + if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)) { + this.writeAttribute("xsi", "http://www.w3.org/2001/XMLSchema-instance", "type", namespacePrefix + ":mdfeRecepcaoResult", xmlWriter); + } else { + this.writeAttribute("xsi", "http://www.w3.org/2001/XMLSchema-instance", "type", "mdfeRecepcaoResult", xmlWriter); + } + } + if (this.localExtraElement != null) { + this.localExtraElement.serialize(xmlWriter); + } else { + throw new org.apache.axis2.databinding.ADBException("extraElement cannot be null!!"); + } + xmlWriter.writeEndElement(); + } + + private static java.lang.String generatePrefix(final java.lang.String namespace) { + if (namespace.equals("http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc")) { + return "ns2"; + } + return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix(); + } + + /** + * Utility method to write an element start tag. + */ + private void writeStartElement(java.lang.String prefix, final java.lang.String namespace, final java.lang.String localPart, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + final java.lang.String writerPrefix = xmlWriter.getPrefix(namespace); + if (writerPrefix != null) { + xmlWriter.writeStartElement(namespace, localPart); + } else { + if (namespace.length() == 0) { + prefix = ""; + } else if (prefix == null) { + prefix = MdfeRecepcaoSincResult.generatePrefix(namespace); + } + xmlWriter.writeStartElement(prefix, localPart, namespace); + xmlWriter.writeNamespace(prefix, namespace); + xmlWriter.setPrefix(prefix, namespace); + } + } + + /** + * Util method to write an attribute with the ns prefix + */ + private void writeAttribute(final java.lang.String prefix, final java.lang.String namespace, final java.lang.String attName, final java.lang.String attValue, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + if (xmlWriter.getPrefix(namespace) == null) { + xmlWriter.writeNamespace(prefix, namespace); + xmlWriter.setPrefix(prefix, namespace); + } + xmlWriter.writeAttribute(namespace, attName, attValue); + } + + /** + * Util method to write an attribute without the ns prefix + */ + @SuppressWarnings("unused") + private void writeAttribute(final java.lang.String namespace, final java.lang.String attName, final java.lang.String attValue, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + if (namespace.equals("")) { + xmlWriter.writeAttribute(attName, attValue); + } else { + this.registerPrefix(xmlWriter, namespace); + xmlWriter.writeAttribute(namespace, attName, attValue); + } + } + + /** + * Util method to write an attribute without the ns prefix + */ + @SuppressWarnings("unused") + private void writeQNameAttribute(final java.lang.String namespace, final java.lang.String attName, final javax.xml.namespace.QName qname, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + final java.lang.String attributeNamespace = qname.getNamespaceURI(); + java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace); + if (attributePrefix == null) { + attributePrefix = this.registerPrefix(xmlWriter, attributeNamespace); + } + java.lang.String attributeValue; + if (attributePrefix.trim().length() > 0) { + attributeValue = attributePrefix + ":" + qname.getLocalPart(); + } else { + attributeValue = qname.getLocalPart(); + } + if (namespace.equals("")) { + xmlWriter.writeAttribute(attName, attributeValue); + } else { + this.registerPrefix(xmlWriter, namespace); + xmlWriter.writeAttribute(namespace, attName, attributeValue); + } + } + + /** + * method to handle Qnames + */ + + @SuppressWarnings("unused") + private void writeQName(final javax.xml.namespace.QName qname, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + final java.lang.String namespaceURI = qname.getNamespaceURI(); + if (namespaceURI != null) { + java.lang.String prefix = xmlWriter.getPrefix(namespaceURI); + if (prefix == null) { + prefix = MdfeRecepcaoSincResult.generatePrefix(namespaceURI); + xmlWriter.writeNamespace(prefix, namespaceURI); + xmlWriter.setPrefix(prefix, namespaceURI); + } + if (prefix.trim().length() > 0) { + xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname)); + } else { + // i.e this is the default namespace + xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname)); + } + } else { + xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname)); + } + } + + @SuppressWarnings("unused") + private void writeQNames(final javax.xml.namespace.QName[] qnames, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + if (qnames != null) { + // we have to store this data until last moment since it is not possible to write any + // namespace data after writing the charactor data + final StringBuilder stringToWrite = new StringBuilder(); + java.lang.String namespaceURI; + java.lang.String prefix; + for (int i = 0; i < qnames.length; i++) { + if (i > 0) { + stringToWrite.append(" "); + } + namespaceURI = qnames[i].getNamespaceURI(); + if (namespaceURI != null) { + prefix = xmlWriter.getPrefix(namespaceURI); + if ((prefix == null) || (prefix.length() == 0)) { + prefix = MdfeRecepcaoSincResult.generatePrefix(namespaceURI); + xmlWriter.writeNamespace(prefix, namespaceURI); + xmlWriter.setPrefix(prefix, namespaceURI); + } + if (prefix.trim().length() > 0) { + stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i])); + } else { + stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i])); + } + } else { + stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i])); + } + } + xmlWriter.writeCharacters(stringToWrite.toString()); + } + } + + /** + * Register a namespace prefix + */ + private java.lang.String registerPrefix(final javax.xml.stream.XMLStreamWriter xmlWriter, final java.lang.String namespace) throws javax.xml.stream.XMLStreamException { + java.lang.String prefix = xmlWriter.getPrefix(namespace); + if (prefix == null) { + prefix = MdfeRecepcaoSincResult.generatePrefix(namespace); + final javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext(); + while (true) { + final java.lang.String uri = nsContext.getNamespaceURI(prefix); + if (uri == null || uri.length() == 0) { + break; + } + prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix(); + } + xmlWriter.writeNamespace(prefix, namespace); + xmlWriter.setPrefix(prefix, namespace); + } + return prefix; + } + + /** + * Factory class that keeps the parse method + */ + public static class Factory { + + /** + * static method to create the object Precondition: If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable If this object is not an element, it is a complex type and the reader is at the event just after the outer start element Postcondition: If this object is an element, the reader is positioned at its end element If this object is a complex type, the reader is positioned at the end element of its outer element + */ + @SuppressWarnings({ "unused", "rawtypes" }) + public static MdfeRecepcaoSincResult parse(final javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception { + final MdfeRecepcaoSincResult object = new MdfeRecepcaoSincResult(); + final int event; + final java.lang.String nillableValue = null; + final java.lang.String prefix = ""; + final java.lang.String namespaceuri = ""; + try { + while (!reader.isStartElement() && !reader.isEndElement()) { + reader.next(); + } + if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance", "type") != null) { + final java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance", "type"); + if (fullTypeName != null) { + java.lang.String nsPrefix = null; + if (fullTypeName.contains(":")) { + nsPrefix = fullTypeName.substring(0, fullTypeName.indexOf(":")); + } + nsPrefix = nsPrefix == null ? "" : nsPrefix; + final java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":") + 1); + if (!"mdfeRecepcaoSincResult".equals(type)) { + // find namespace for the prefix + final java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix); + return (MdfeRecepcaoSincResult) ExtensionMapper.getTypeObject(nsUri, type, reader); + } + } + } + // Note all attributes that were handled. Used to differ normal attributes + // from anyAttributes. + final java.util.Vector handledAttributes = new java.util.Vector(); + reader.next(); + while (!reader.isStartElement() && !reader.isEndElement()) { + reader.next(); + } + if (reader.isStartElement()) { + // use the QName from the parser as the name for the builder + final javax.xml.namespace.QName startQname1 = reader.getName(); + // We need to wrap the reader so that it produces a fake START_DOCUMENT event + // this is needed by the builder classes + final org.apache.axis2.databinding.utils.NamedStaxOMBuilder builder1 = new org.apache.axis2.databinding.utils.NamedStaxOMBuilder(new org.apache.axis2.util.StreamWrapper(reader), startQname1); + object.setExtraElement(builder1.getOMElement()); + reader.next(); + } // End of if for expected property start element + else { + // A start element we are not expecting indicates an invalid parameter was passed + throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getName()); + } + while (!reader.isStartElement() && !reader.isEndElement()) { + reader.next(); + } + if (reader.isStartElement()) { + // A start element we are not expecting indicates a trailing invalid property + throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getName()); + } + } catch (final javax.xml.stream.XMLStreamException e) { + throw new java.lang.Exception(e); + } + return object; + } + }// end of factory class + } + + @SuppressWarnings("serial") + public static class MdfeCabecMsgE implements org.apache.axis2.databinding.ADBBean { + + public static final javax.xml.namespace.QName MY_QNAME = new javax.xml.namespace.QName("http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc", "mdfeCabecMsg", "ns2"); + + /** + * field for MdfeCabecMsg + */ + + protected MdfeCabecMsg localMdfeCabecMsg; + + /** + * Auto generated getter method + * @return MdfeCabecMsg + */ + public MdfeCabecMsg getMdfeCabecMsg() { + return this.localMdfeCabecMsg; + } + + /** + * Auto generated setter method + * @param param MdfeCabecMsg + */ + public void setMdfeCabecMsg(final MdfeCabecMsg param) { + this.localMdfeCabecMsg = param; + } + + /** + * @param parentQName + * @param factory + * @return org.apache.axiom.om.OMElement + */ + @Override + public org.apache.axiom.om.OMElement getOMElement(final javax.xml.namespace.QName parentQName, final org.apache.axiom.om.OMFactory factory) { + final org.apache.axiom.om.OMDataSource dataSource = new org.apache.axis2.databinding.ADBDataSource(this, MdfeCabecMsgE.MY_QNAME); + return factory.createOMElement(dataSource, MdfeCabecMsgE.MY_QNAME); + } + + @Override + public void serialize(final javax.xml.namespace.QName parentQName, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + this.serialize(parentQName, xmlWriter, false); + } + + @Override + public void serialize(final javax.xml.namespace.QName parentQName, final javax.xml.stream.XMLStreamWriter xmlWriter, final boolean serializeType) throws javax.xml.stream.XMLStreamException { + // We can safely assume an element has only one type associated with it + if (this.localMdfeCabecMsg == null) { + throw new org.apache.axis2.databinding.ADBException("mdfeCabecMsg cannot be null!"); + } + this.localMdfeCabecMsg.serialize(MdfeCabecMsgE.MY_QNAME, xmlWriter); + } + + private static java.lang.String generatePrefix(final java.lang.String namespace) { + if (namespace.equals("http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc")) { + return "ns2"; + } + return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix(); + } + + /** + * Utility method to write an element start tag. + */ + @SuppressWarnings("unused") + private void writeStartElement(java.lang.String prefix, final java.lang.String namespace, final java.lang.String localPart, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + final java.lang.String writerPrefix = xmlWriter.getPrefix(namespace); + if (writerPrefix != null) { + xmlWriter.writeStartElement(namespace, localPart); + } else { + if (namespace.length() == 0) { + prefix = ""; + } else if (prefix == null) { + prefix = MdfeCabecMsgE.generatePrefix(namespace); + } + xmlWriter.writeStartElement(prefix, localPart, namespace); + xmlWriter.writeNamespace(prefix, namespace); + xmlWriter.setPrefix(prefix, namespace); + } + } + + /** + * Util method to write an attribute with the ns prefix + */ + @SuppressWarnings("unused") + private void writeAttribute(final java.lang.String prefix, final java.lang.String namespace, final java.lang.String attName, final java.lang.String attValue, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + if (xmlWriter.getPrefix(namespace) == null) { + xmlWriter.writeNamespace(prefix, namespace); + xmlWriter.setPrefix(prefix, namespace); + } + xmlWriter.writeAttribute(namespace, attName, attValue); + } + + /** + * Util method to write an attribute without the ns prefix + */ + @SuppressWarnings("unused") + private void writeAttribute(final java.lang.String namespace, final java.lang.String attName, final java.lang.String attValue, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + if (namespace.equals("")) { + xmlWriter.writeAttribute(attName, attValue); + } else { + this.registerPrefix(xmlWriter, namespace); + xmlWriter.writeAttribute(namespace, attName, attValue); + } + } + + /** + * Util method to write an attribute without the ns prefix + */ + @SuppressWarnings("unused") + private void writeQNameAttribute(final java.lang.String namespace, final java.lang.String attName, final javax.xml.namespace.QName qname, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + final java.lang.String attributeNamespace = qname.getNamespaceURI(); + java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace); + if (attributePrefix == null) { + attributePrefix = this.registerPrefix(xmlWriter, attributeNamespace); + } + java.lang.String attributeValue; + if (attributePrefix.trim().length() > 0) { + attributeValue = attributePrefix + ":" + qname.getLocalPart(); + } else { + attributeValue = qname.getLocalPart(); + } + if (namespace.equals("")) { + xmlWriter.writeAttribute(attName, attributeValue); + } else { + this.registerPrefix(xmlWriter, namespace); + xmlWriter.writeAttribute(namespace, attName, attributeValue); + } + } + + /** + * method to handle Qnames + */ + + @SuppressWarnings("unused") + private void writeQName(final javax.xml.namespace.QName qname, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + final java.lang.String namespaceURI = qname.getNamespaceURI(); + if (namespaceURI != null) { + java.lang.String prefix = xmlWriter.getPrefix(namespaceURI); + if (prefix == null) { + prefix = MdfeCabecMsgE.generatePrefix(namespaceURI); + xmlWriter.writeNamespace(prefix, namespaceURI); + xmlWriter.setPrefix(prefix, namespaceURI); + } + if (prefix.trim().length() > 0) { + xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname)); + } else { + // i.e this is the default namespace + xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname)); + } + } else { + xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname)); + } + } + + @SuppressWarnings("unused") + private void writeQNames(final javax.xml.namespace.QName[] qnames, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + if (qnames != null) { + // we have to store this data until last moment since it is not possible to write any + // namespace data after writing the charactor data + final StringBuilder stringToWrite = new StringBuilder(); + java.lang.String namespaceURI; + java.lang.String prefix; + for (int i = 0; i < qnames.length; i++) { + if (i > 0) { + stringToWrite.append(" "); + } + namespaceURI = qnames[i].getNamespaceURI(); + if (namespaceURI != null) { + prefix = xmlWriter.getPrefix(namespaceURI); + if ((prefix == null) || (prefix.length() == 0)) { + prefix = MdfeCabecMsgE.generatePrefix(namespaceURI); + xmlWriter.writeNamespace(prefix, namespaceURI); + xmlWriter.setPrefix(prefix, namespaceURI); + } + if (prefix.trim().length() > 0) { + stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i])); + } else { + stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i])); + } + } else { + stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i])); + } + } + xmlWriter.writeCharacters(stringToWrite.toString()); + } + } + + /** + * Register a namespace prefix + */ + private java.lang.String registerPrefix(final javax.xml.stream.XMLStreamWriter xmlWriter, final java.lang.String namespace) throws javax.xml.stream.XMLStreamException { + java.lang.String prefix = xmlWriter.getPrefix(namespace); + if (prefix == null) { + prefix = MdfeCabecMsgE.generatePrefix(namespace); + final javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext(); + while (true) { + final java.lang.String uri = nsContext.getNamespaceURI(prefix); + if (uri == null || uri.length() == 0) { + break; + } + prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix(); + } + xmlWriter.writeNamespace(prefix, namespace); + xmlWriter.setPrefix(prefix, namespace); + } + return prefix; + } + + /** + * Factory class that keeps the parse method + */ + public static class Factory { + + /** + * static method to create the object Precondition: If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable If this object is not an element, it is a complex type and the reader is at the event just after the outer start element Postcondition: If this object is an element, the reader is positioned at its end element If this object is a complex type, the reader is positioned at the end element of its outer element + */ + @SuppressWarnings({ "unused", "rawtypes" }) + public static MdfeCabecMsgE parse(final javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception { + final MdfeCabecMsgE object = new MdfeCabecMsgE(); + final int event; + final java.lang.String nillableValue = null; + final java.lang.String prefix = ""; + final java.lang.String namespaceuri = ""; + try { + while (!reader.isStartElement() && !reader.isEndElement()) { + reader.next(); + } + // Note all attributes that were handled. Used to differ normal attributes + // from anyAttributes. + final java.util.Vector handledAttributes = new java.util.Vector(); + while (!reader.isEndElement()) { + if (reader.isStartElement()) { + if (reader.isStartElement() && new javax.xml.namespace.QName("http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc", "mdfeCabecMsg").equals(reader.getName())) { + object.setMdfeCabecMsg(MdfeCabecMsg.Factory.parse(reader)); + } // End of if for expected property start element + else { + // A start element we are not expecting indicates an invalid parameter was passed + throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getName()); + } + } else { + reader.next(); + } + } // end of while loop + } catch (final javax.xml.stream.XMLStreamException e) { + throw new java.lang.Exception(e); + } + return object; + } + }// end of factory class + } + + @SuppressWarnings("serial") + public static class MdfeDadosMsg implements org.apache.axis2.databinding.ADBBean { + + public static final javax.xml.namespace.QName MY_QNAME = new javax.xml.namespace.QName("http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc", "mdfeDadosMsg", "ns2"); + + /** + * field for ExtraElement + */ + + protected org.apache.axiom.om.OMElement localExtraElement; + + /** + * Auto generated getter method + * @return org.apache.axiom.om.OMElement + */ + public org.apache.axiom.om.OMElement getExtraElement() { + return this.localExtraElement; + } + + /** + * Auto generated setter method + * @param param ExtraElement + */ + public void setExtraElement(final org.apache.axiom.om.OMElement param) { + this.localExtraElement = param; + } + + /** + * @param parentQName + * @param factory + * @return org.apache.axiom.om.OMElement + */ + @Override + public org.apache.axiom.om.OMElement getOMElement(final javax.xml.namespace.QName parentQName, final org.apache.axiom.om.OMFactory factory) { + final org.apache.axiom.om.OMDataSource dataSource = new org.apache.axis2.databinding.ADBDataSource(this, MdfeDadosMsg.MY_QNAME); + return factory.createOMElement(dataSource, MdfeDadosMsg.MY_QNAME); + } + + @Override + public void serialize(final javax.xml.namespace.QName parentQName, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + this.serialize(parentQName, xmlWriter, false); + } + + @Override + public void serialize(final javax.xml.namespace.QName parentQName, final javax.xml.stream.XMLStreamWriter xmlWriter, final boolean serializeType) throws javax.xml.stream.XMLStreamException { + java.lang.String prefix; + java.lang.String namespace; + prefix = parentQName.getPrefix(); + namespace = parentQName.getNamespaceURI(); + this.writeStartElement(prefix, namespace, parentQName.getLocalPart(), xmlWriter); + if (serializeType) { + final java.lang.String namespacePrefix = this.registerPrefix(xmlWriter, "http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc"); + if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)) { + this.writeAttribute("xsi", "http://www.w3.org/2001/XMLSchema-instance", "type", namespacePrefix + ":mdfeDadosMsg", xmlWriter); + } else { + this.writeAttribute("xsi", "http://www.w3.org/2001/XMLSchema-instance", "type", "mdfeDadosMsg", xmlWriter); + } + } + if (this.localExtraElement != null) { + this.localExtraElement.serialize(xmlWriter); + } else { + throw new org.apache.axis2.databinding.ADBException("extraElement cannot be null!!"); + } + xmlWriter.writeEndElement(); + } + + private static java.lang.String generatePrefix(final java.lang.String namespace) { + if (namespace.equals("http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc")) { + return "ns2"; + } + return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix(); + } + + /** + * Utility method to write an element start tag. + */ + private void writeStartElement(java.lang.String prefix, final java.lang.String namespace, final java.lang.String localPart, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + final java.lang.String writerPrefix = xmlWriter.getPrefix(namespace); + if (writerPrefix != null) { + xmlWriter.writeStartElement(namespace, localPart); + } else { + if (namespace.length() == 0) { + prefix = ""; + } else if (prefix == null) { + prefix = MdfeDadosMsg.generatePrefix(namespace); + } + xmlWriter.writeStartElement(prefix, localPart, namespace); + xmlWriter.writeNamespace(prefix, namespace); + xmlWriter.setPrefix(prefix, namespace); + } + } + + /** + * Util method to write an attribute with the ns prefix + */ + private void writeAttribute(final java.lang.String prefix, final java.lang.String namespace, final java.lang.String attName, final java.lang.String attValue, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + if (xmlWriter.getPrefix(namespace) == null) { + xmlWriter.writeNamespace(prefix, namespace); + xmlWriter.setPrefix(prefix, namespace); + } + xmlWriter.writeAttribute(namespace, attName, attValue); + } + + /** + * Util method to write an attribute without the ns prefix + */ + @SuppressWarnings("unused") + private void writeAttribute(final java.lang.String namespace, final java.lang.String attName, final java.lang.String attValue, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + if (namespace.equals("")) { + xmlWriter.writeAttribute(attName, attValue); + } else { + this.registerPrefix(xmlWriter, namespace); + xmlWriter.writeAttribute(namespace, attName, attValue); + } + } + + /** + * Util method to write an attribute without the ns prefix + */ + @SuppressWarnings("unused") + private void writeQNameAttribute(final java.lang.String namespace, final java.lang.String attName, final javax.xml.namespace.QName qname, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + final java.lang.String attributeNamespace = qname.getNamespaceURI(); + java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace); + if (attributePrefix == null) { + attributePrefix = this.registerPrefix(xmlWriter, attributeNamespace); + } + java.lang.String attributeValue; + if (attributePrefix.trim().length() > 0) { + attributeValue = attributePrefix + ":" + qname.getLocalPart(); + } else { + attributeValue = qname.getLocalPart(); + } + if (namespace.equals("")) { + xmlWriter.writeAttribute(attName, attributeValue); + } else { + this.registerPrefix(xmlWriter, namespace); + xmlWriter.writeAttribute(namespace, attName, attributeValue); + } + } + + /** + * method to handle Qnames + */ + + @SuppressWarnings("unused") + private void writeQName(final javax.xml.namespace.QName qname, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + final java.lang.String namespaceURI = qname.getNamespaceURI(); + if (namespaceURI != null) { + java.lang.String prefix = xmlWriter.getPrefix(namespaceURI); + if (prefix == null) { + prefix = MdfeDadosMsg.generatePrefix(namespaceURI); + xmlWriter.writeNamespace(prefix, namespaceURI); + xmlWriter.setPrefix(prefix, namespaceURI); + } + if (prefix.trim().length() > 0) { + xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname)); + } else { + // i.e this is the default namespace + xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname)); + } + } else { + xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname)); + } + } + + @SuppressWarnings("unused") + private void writeQNames(final javax.xml.namespace.QName[] qnames, final javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException { + if (qnames != null) { + // we have to store this data until last moment since it is not possible to write any + // namespace data after writing the charactor data + final StringBuilder stringToWrite = new StringBuilder(); + java.lang.String namespaceURI; + java.lang.String prefix; + for (int i = 0; i < qnames.length; i++) { + if (i > 0) { + stringToWrite.append(" "); + } + namespaceURI = qnames[i].getNamespaceURI(); + if (namespaceURI != null) { + prefix = xmlWriter.getPrefix(namespaceURI); + if ((prefix == null) || (prefix.length() == 0)) { + prefix = MdfeDadosMsg.generatePrefix(namespaceURI); + xmlWriter.writeNamespace(prefix, namespaceURI); + xmlWriter.setPrefix(prefix, namespaceURI); + } + if (prefix.trim().length() > 0) { + stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i])); + } else { + stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i])); + } + } else { + stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i])); + } + } + xmlWriter.writeCharacters(stringToWrite.toString()); + } + } + + /** + * Register a namespace prefix + */ + private java.lang.String registerPrefix(final javax.xml.stream.XMLStreamWriter xmlWriter, final java.lang.String namespace) throws javax.xml.stream.XMLStreamException { + java.lang.String prefix = xmlWriter.getPrefix(namespace); + if (prefix == null) { + prefix = MdfeDadosMsg.generatePrefix(namespace); + final javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext(); + while (true) { + final java.lang.String uri = nsContext.getNamespaceURI(prefix); + if (uri == null || uri.length() == 0) { + break; + } + prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix(); + } + xmlWriter.writeNamespace(prefix, namespace); + xmlWriter.setPrefix(prefix, namespace); + } + return prefix; + } + + /** + * Factory class that keeps the parse method + */ + public static class Factory { + + /** + * static method to create the object Precondition: If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable If this object is not an element, it is a complex type and the reader is at the event just after the outer start element Postcondition: If this object is an element, the reader is positioned at its end element If this object is a complex type, the reader is positioned at the end element of its outer element + */ + @SuppressWarnings({ "unused", "rawtypes" }) + public static MdfeDadosMsg parse(final javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception { + final MdfeDadosMsg object = new MdfeDadosMsg(); + final int event; + final java.lang.String nillableValue = null; + final java.lang.String prefix = ""; + final java.lang.String namespaceuri = ""; + try { + while (!reader.isStartElement() && !reader.isEndElement()) { + reader.next(); + } + if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance", "type") != null) { + final java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance", "type"); + if (fullTypeName != null) { + java.lang.String nsPrefix = null; + if (fullTypeName.contains(":")) { + nsPrefix = fullTypeName.substring(0, fullTypeName.indexOf(":")); + } + nsPrefix = nsPrefix == null ? "" : nsPrefix; + final java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":") + 1); + if (!"mdfeDadosMsg".equals(type)) { + // find namespace for the prefix + final java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix); + return (MdfeDadosMsg) ExtensionMapper.getTypeObject(nsUri, type, reader); + } + } + } + // Note all attributes that were handled. Used to differ normal attributes + // from anyAttributes. + final java.util.Vector handledAttributes = new java.util.Vector(); + reader.next(); + while (!reader.isStartElement() && !reader.isEndElement()) { + reader.next(); + } + if (reader.isStartElement()) { + // use the QName from the parser as the name for the builder + final javax.xml.namespace.QName startQname1 = reader.getName(); + // We need to wrap the reader so that it produces a fake START_DOCUMENT event + // this is needed by the builder classes + final org.apache.axis2.databinding.utils.NamedStaxOMBuilder builder1 = new org.apache.axis2.databinding.utils.NamedStaxOMBuilder(new org.apache.axis2.util.StreamWrapper(reader), startQname1); + object.setExtraElement(builder1.getOMElement()); + reader.next(); + } // End of if for expected property start element + else { + // A start element we are not expecting indicates an invalid parameter was passed + throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getName()); + } + while (!reader.isStartElement() && !reader.isEndElement()) { + reader.next(); + } + if (reader.isStartElement()) { + // A start element we are not expecting indicates a trailing invalid property + throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getName()); + } + } catch (final javax.xml.stream.XMLStreamException e) { + throw new java.lang.Exception(e); + } + return object; + } + }// end of factory class + } + + private org.apache.axiom.om.OMElement toOM(final com.fincatto.documentofiscal.mdfe3.webservices.recepcao.MDFeRecepcaoSincStub1.MdfeCabecMsgE param, final boolean optimizeContent) { + // try { + return param.getOMElement(com.fincatto.documentofiscal.mdfe3.webservices.recepcao.MDFeRecepcaoSincStub1.MdfeCabecMsgE.MY_QNAME, org.apache.axiom.om.OMAbstractFactory.getOMFactory()); + // } catch (org.apache.axis2.databinding.ADBException e) { + // throw org.apache.axis2.AxisFault.makeFault(e); + // } + } + + private org.apache.axiom.soap.SOAPEnvelope toEnvelope(final org.apache.axiom.soap.SOAPFactory factory, final com.fincatto.documentofiscal.mdfe3.webservices.recepcao.MDFeRecepcaoSincStub1.MdfeDadosMsg param, final boolean optimizeContent, final javax.xml.namespace.QName methodQName) { + // try { + final org.apache.axiom.soap.SOAPEnvelope emptyEnvelope = factory.getDefaultEnvelope(); + emptyEnvelope.getBody().addChild(param.getOMElement(com.fincatto.documentofiscal.mdfe3.webservices.recepcao.MDFeRecepcaoSincStub1.MdfeDadosMsg.MY_QNAME, factory)); + return emptyEnvelope; + // } catch (org.apache.axis2.databinding.ADBException e) { + // throw org.apache.axis2.AxisFault.makeFault(e); + // } + } + + /* methods to provide back word compatibility */ + + /** + * get the default envelope + */ + @SuppressWarnings("unused") + private org.apache.axiom.soap.SOAPEnvelope toEnvelope(final org.apache.axiom.soap.SOAPFactory factory) { + return factory.getDefaultEnvelope(); + } + + @SuppressWarnings("rawtypes") + private java.lang.Object fromOM(final org.apache.axiom.om.OMElement param, final java.lang.Class type, final java.util.Map extraNamespaces) throws org.apache.axis2.AxisFault { + try { + if (com.fincatto.documentofiscal.mdfe3.webservices.recepcao.MDFeRecepcaoSincStub1.MdfeDadosMsg.class.equals(type)) { + return com.fincatto.documentofiscal.mdfe3.webservices.recepcao.MDFeRecepcaoSincStub1.MdfeDadosMsg.Factory.parse(param.getXMLStreamReaderWithoutCaching()); + } + if (com.fincatto.documentofiscal.mdfe3.webservices.recepcao.MDFeRecepcaoSincStub1.MdfeRecepcaoSincResult.class.equals(type)) { + return com.fincatto.documentofiscal.mdfe3.webservices.recepcao.MDFeRecepcaoSincStub1.MdfeRecepcaoSincResult.Factory.parse(param.getXMLStreamReaderWithoutCaching()); + } + if (com.fincatto.documentofiscal.mdfe3.webservices.recepcao.MDFeRecepcaoSincStub1.MdfeCabecMsgE.class.equals(type)) { + return com.fincatto.documentofiscal.mdfe3.webservices.recepcao.MDFeRecepcaoSincStub1.MdfeCabecMsgE.Factory.parse(param.getXMLStreamReaderWithoutCaching()); + } + } catch (final java.lang.Exception e) { + throw org.apache.axis2.AxisFault.makeFault(e); + } + return null; + } +} diff --git a/src/main/java/com/fincatto/documentofiscal/mdfe3/webservices/recepcao/MDFeRecepcaoStub.java b/src/main/java/com/fincatto/documentofiscal/mdfe3/webservices/recepcao/MDFeRecepcaoStub.java index ef9bad518..f197f996b 100644 --- a/src/main/java/com/fincatto/documentofiscal/mdfe3/webservices/recepcao/MDFeRecepcaoStub.java +++ b/src/main/java/com/fincatto/documentofiscal/mdfe3/webservices/recepcao/MDFeRecepcaoStub.java @@ -12,9 +12,12 @@ import com.fincatto.documentofiscal.utils.MessageContextFactory; /* + * Serviços Assincronos serão desativados na data de 30 de Junho de 2024 conforme versa a NT 2024.001. + * * MDFeRecepcaoStub java implementation */ +@Deprecated public class MDFeRecepcaoStub extends org.apache.axis2.client.Stub { protected org.apache.axis2.description.AxisOperation[] _operations; diff --git a/src/main/java/com/fincatto/documentofiscal/validadores/DFXMLValidador.java b/src/main/java/com/fincatto/documentofiscal/validadores/DFXMLValidador.java index dbcdc270a..b52c7cbca 100644 --- a/src/main/java/com/fincatto/documentofiscal/validadores/DFXMLValidador.java +++ b/src/main/java/com/fincatto/documentofiscal/validadores/DFXMLValidador.java @@ -58,8 +58,8 @@ public static boolean validaNota400(final String arquivoXML) throws Exception { * @throws URISyntaxException */ private static boolean validaMDF(final String xml, final String xsd) throws IOException, SAXException, URISyntaxException { - System.setProperty("jdk.xml.maxOccurLimit", "10000"); - final URL xsdPath = DFXMLValidador.class.getClassLoader().getResource(String.format("schemas/PL_MDFe_300a_NT02020_NFF/%s", xsd)); + System.setProperty("jdk.xml.maxOccurLimit", "20000"); + final URL xsdPath = DFXMLValidador.class.getClassLoader().getResource(String.format("schemas/PL_MDFe_300b_NT022024/%s", xsd)); final SchemaFactory schemaFactory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema"); final Schema schema = schemaFactory.newSchema(new StreamSource(xsdPath.toURI().toString())); schema.newValidator().validate(new StreamSource(new StringReader(xml))); diff --git a/src/main/resources/schemas/PL_MDFe_300b_NT022024/consMDFeNaoEncTiposBasico_v3.00.xsd b/src/main/resources/schemas/PL_MDFe_300b_NT022024/consMDFeNaoEncTiposBasico_v3.00.xsd new file mode 100644 index 000000000..e0cd9511d --- /dev/null +++ b/src/main/resources/schemas/PL_MDFe_300b_NT022024/consMDFeNaoEncTiposBasico_v3.00.xsd @@ -0,0 +1,107 @@ + + + + + + + + Tipo Pedido de Consulta MDF-e Não Encerrados + + + + + Identificação do Ambiente: +1 - Produção +2 - Homologação + + + + + Serviço Solicitado + + + + + Identificação do emitente + + + + CNPJ do emitente do MDF-e + Informar zeros não significativos + + + + + CPF do emitente do MDF-e + Informar zeros não significativos +Usar com serie específica 920-969 para emitente pessoa física com inscrição estadual + + + + + + + + + + + + + Tipo Retorno de Pedido de Consulta MDF-e não Encerrados + + + + + Identificação do Ambiente: +1 - Produção +2 - Homologação + + + + + Versão do Aplicativo que processou o MDF-e + + + + + Código do status da mensagem enviada. + + + + + Descrição literal do status do serviço solicitado. + + + + + código da UF de atendimento + + + + + + + + Chaves de acesso do MDF-e não encerrado + + + + + Número do Protocolo de autorização do MDF-e não encerrado + + + + + + + + + + + Tipo Versão do Consulta MDF-e não encerrados - 3.00 + + + + + + diff --git a/src/main/resources/schemas/PL_MDFe_300b_NT022024/consMDFeNaoEnc_v3.00.xsd b/src/main/resources/schemas/PL_MDFe_300b_NT022024/consMDFeNaoEnc_v3.00.xsd new file mode 100644 index 000000000..870042f14 --- /dev/null +++ b/src/main/resources/schemas/PL_MDFe_300b_NT022024/consMDFeNaoEnc_v3.00.xsd @@ -0,0 +1,9 @@ + + + + + + Schema de validação XML dp Pedido de Consulta MDF-e não encerrados. + + + diff --git a/src/main/resources/schemas/PL_MDFe_300b_NT022024/consReciMDFeTiposBasico_v3.00.xsd b/src/main/resources/schemas/PL_MDFe_300b_NT022024/consReciMDFeTiposBasico_v3.00.xsd new file mode 100644 index 000000000..ed684c44a --- /dev/null +++ b/src/main/resources/schemas/PL_MDFe_300b_NT022024/consReciMDFeTiposBasico_v3.00.xsd @@ -0,0 +1,169 @@ + + + + + + + + Tipo Protocolo de status resultado do processamento do MDF-e + + + + + Dados do protocolo de status + + + + + + Identificação do Ambiente: +1 - Produção +2 - Homologação + + + + + Versão do Aplicativo que processou o MDF-e + + + + + Chaves de acesso do MDF-e, + + + + + Data e hora de processamento, no formato AAAA-MM-DDTHH:MM:SS TZD. + + + + + + + + Número do Protocolo de Status do MDF-e. + + + + + Digest Value do MDF-e processado. Utilizado para conferir a integridade do MDF-e original. + + + + + Código do status do MDF-e. + + + + + + + + Descrição literal do status do MDF-e. + + + + + + + + + Mensagem do Fisco + + + + + + Código do status da mensagem do fisco + + + + + + + + Mensagem do Fisco + + + + + + + + + + + + Tipo Pedido de Consulta do Recibo do MDF-e + + + + + Identificação do Ambiente: +1 - Produção +2 - Homologação + + + + + Número do Recibo do arquivo a ser consultado + + + + + + + + Tipo Retorno do Pedido de Consulta do Recibo do MDF-e + + + + + Identificação do Ambiente: +1 - Produção +2 - Homologação + + + + + Versão do Aplicativo que processou o MDF-e + + + + + Número do Recibo Consultado + + + + + código do status do retorno da consulta. + + + + + Descrição literal do status do do retorno da consulta. + + + + + Idntificação da UF + + + + + Resultado do processamento do MDF-e + + + + + + + + Tipo Versão do Consulta de MDF-e - 3.00 + + + + + + + diff --git a/src/main/resources/schemas/PL_MDFe_300b_NT022024/consReciMDFe_v3.00.xsd b/src/main/resources/schemas/PL_MDFe_300b_NT022024/consReciMDFe_v3.00.xsd new file mode 100644 index 000000000..09834cd48 --- /dev/null +++ b/src/main/resources/schemas/PL_MDFe_300b_NT022024/consReciMDFe_v3.00.xsd @@ -0,0 +1,9 @@ + + + + + + Schema XML de validação do Pedido de Consulta de MDF-e + + + diff --git a/src/main/resources/schemas/PL_MDFe_300b_NT022024/consSitMDFeTiposBasico_v3.00.xsd b/src/main/resources/schemas/PL_MDFe_300b_NT022024/consSitMDFeTiposBasico_v3.00.xsd new file mode 100644 index 000000000..bfb768ea5 --- /dev/null +++ b/src/main/resources/schemas/PL_MDFe_300b_NT022024/consSitMDFeTiposBasico_v3.00.xsd @@ -0,0 +1,137 @@ + + + + + + + + Tipo Pedido de Consulta da Situação Atual do MDF-e + + + + + Identificação do Ambiente: +1 - Produção +2 - Homologação + + + + + Serviço Solicitado + + + + + Chaves de acesso do MDF-e, compostas por: UF do emitente, AAMM da emissão do MDF-e, CNPJ do emitente, modelo, série, tipo de emissão e número do MDF-e e código numérico + DV. + + + + + + + + + + + + Tipo Retorno de Pedido de Consulta da Situação Atual do MDF-e + + + + + Identificação do Ambiente: +1 - Produção +2 - Homologação + + + + + Versão do Aplicativo que processou o MDF-e + + + + + Código do status da mensagem enviada. + + + + + Descrição literal do status do serviço solicitado. + + + + + código da UF de atendimento + + + + + + + + Retornar protMDFe da versão correspondente do MDF-e autorizado + + + + + + + + + + + + + + + + + + + + Retornar procEventoMDFe da versão correspondente do evento MDF-e autorizado + + + + + + + + + + + + + + + + + Grupo de informações do compartilhamento do MDFe com InfraSA para geração do DTe + + + + + + Número do Protocolo de geração do DTe + + + + + Data e hora de geração do protocolo, no formato AAAA-MM-DDTHH:MM:SS TZD. + + + + + + + + + + + Tipo Versão do Consulta situação de MDF-e - 1.00 + + + + + + diff --git a/src/main/resources/schemas/PL_MDFe_300b_NT022024/consSitMDFe_v3.00.xsd b/src/main/resources/schemas/PL_MDFe_300b_NT022024/consSitMDFe_v3.00.xsd new file mode 100644 index 000000000..85b6dce46 --- /dev/null +++ b/src/main/resources/schemas/PL_MDFe_300b_NT022024/consSitMDFe_v3.00.xsd @@ -0,0 +1,9 @@ + + + + + + Schema de validação XML dp Pedido de Consulta da Situação Atual do MDF-e. + + + diff --git a/src/main/resources/schemas/PL_MDFe_300b_NT022024/consStatServMDFe_v3.00.xsd b/src/main/resources/schemas/PL_MDFe_300b_NT022024/consStatServMDFe_v3.00.xsd new file mode 100644 index 000000000..f3237bfbc --- /dev/null +++ b/src/main/resources/schemas/PL_MDFe_300b_NT022024/consStatServMDFe_v3.00.xsd @@ -0,0 +1,9 @@ + + + + + + Schema XML de validação do Pedido de Consulta do Status do Serviço MDF-e + + + diff --git a/src/main/resources/schemas/PL_MDFe_300b_NT022024/consStatServTiposBasico_v3.00.xsd b/src/main/resources/schemas/PL_MDFe_300b_NT022024/consStatServTiposBasico_v3.00.xsd new file mode 100644 index 000000000..41c7b6b8e --- /dev/null +++ b/src/main/resources/schemas/PL_MDFe_300b_NT022024/consStatServTiposBasico_v3.00.xsd @@ -0,0 +1,104 @@ + + + + + + Tipo Pedido de Consulta do Status do Serviço MDFe + + + + + Identificação do Ambiente: +1 - Produção +2 - Homologação + + + + + Serviço Solicitado + + + + + + + + Tipo Resultado da Consulta do Status do Serviço MDFe + + + + + Identificação do Ambiente: +1 - Produção +2 - Homologação + + + + + Versão do Aplicativo que processou o CT-e + + + + + + + + + + Código do status da mensagem enviada. + + + + + Descrição literal do status do serviço solicitado. + + + + + Código da UF responsável pelo serviço + + + + + AAAA-MM-DDTHH:MM:SS TZD + + + + + Tempo médio de resposta do serviço (em segundos) dos últimos 5 minutos + + + + + + + + + + AAAA-MM-DDTHH:MM:SS TZD. Deve ser preenchida com data e hora previstas para o retorno dos serviços prestados. + + + + + Campo observação utilizado para incluir informações ao contribuinte + + + + + + + + + + + + + + + Tipo Versão do Consulta do Status do Serviço MDFe + + + + + + diff --git a/src/main/resources/schemas/PL_MDFe_300b_NT022024/distMDFe_v3.00.xsd b/src/main/resources/schemas/PL_MDFe_300b_NT022024/distMDFe_v3.00.xsd new file mode 100644 index 000000000..9f3afca80 --- /dev/null +++ b/src/main/resources/schemas/PL_MDFe_300b_NT022024/distMDFe_v3.00.xsd @@ -0,0 +1,9 @@ + + + + + + solicitação de distribuição de MDF-e para o Ambiente Autorizador + + + diff --git a/src/main/resources/schemas/PL_MDFe_300b_NT022024/enviMDFe_v3.00.xsd b/src/main/resources/schemas/PL_MDFe_300b_NT022024/enviMDFe_v3.00.xsd new file mode 100644 index 000000000..83928b2a6 --- /dev/null +++ b/src/main/resources/schemas/PL_MDFe_300b_NT022024/enviMDFe_v3.00.xsd @@ -0,0 +1,10 @@ + + + + + + + Schema XML de validação do Envio de Lote MDF-e para concessão de autorização + + + diff --git a/src/main/resources/schemas/PL_MDFe_300b_NT022024/evAlteracaoPagtoServMDFe_v3.00.xsd b/src/main/resources/schemas/PL_MDFe_300b_NT022024/evAlteracaoPagtoServMDFe_v3.00.xsd new file mode 100644 index 000000000..e0d8bc62b --- /dev/null +++ b/src/main/resources/schemas/PL_MDFe_300b_NT022024/evAlteracaoPagtoServMDFe_v3.00.xsd @@ -0,0 +1,255 @@ + + + + + + + Schema XML de validação do evento de alteração do pagamento do serviçp de transporte 110118 + + + + + + Descrição do Evento - “Alteração Pagamento Serviço MDFe” + + + + + + + + + + + + Número do Protocolo de Status do MDF-e. + + + + + Informações do Pagamento do Frete + + + + + + Razão social ou Nome do responsavel pelo pagamento + + + + + + + + + + + + Número do CPF do responsável pelo pgto + Informar os zeros não significativos. + + + + + Número do CNPJ do responsável pelo pgto + Informar os zeros não significativos. + + + + + Identificador do responsável pelo pgto em caso de ser estrangeiro + + + + + + + + + + + + + + Componentes do Pagamentoi do Frete + + + + + + Tipo do Componente + +01 - Vale Pedágio; +02 - Impostos, taxas e contribuições; +03 - Despesas (bancárias, meios de pagamento, outras) +; 99 - Outros + + + + + + + + + + + + + + Valor do componente + + + + + Descrição do componente do tipo Outros + + + + + + + + + + + + + + Valor Total do Contrato + + + + + Indicador da Forma de Pagamento:0-Pagamento à Vista;1-Pagamento à Prazo; + + + + + + + + + + + + Valor do Adiantamento (usar apenas em pagamento à Prazo + + + + + Indicador para declarar concordância em antecipar o adiantamento + Operação de transporte com utilização de veículos de frotas dedicadas ou fidelizadas. +Preencher com “1” para indicar operação de transporte de alto desempenho, demais casos não informar a tag + + + + + + + + + + + Informações do pagamento a prazo. + Informar somente se indPag for à Prazo + + + + + + Número da Parcela + + + + + + + + + + + Data de vencimento da Parcela (AAAA-MM-DD) + + + + + Valor da Parcela + + + + + + + + Tipo de Permissão em relação a antecipação das parcelas + 0 - Não permite antecipar +1 - Permite antecipar as parcelas +2 - Permite antecipar as parcelas mediante confirmação + + + + + + + + + + + + Informações bancárias + + + + + + + Número do banco + + + + + + + + + + + Número da agência bancária + + + + + + + + + + + + Número do CNPJ da Instituição de Pagamento Eletrônico do Frete + Informar os zeros não significativos. + + + + + Chave PIX + Informar a chave PIX para recebimento do frete. +Pode ser email, CPF/ CNPJ (somente numeros), Telefone com a seguinte formatação (+5599999999999) ou a chave aleatória gerada pela instituição. + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/schemas/PL_MDFe_300b_NT022024/evCancMDFe_v3.00.xsd b/src/main/resources/schemas/PL_MDFe_300b_NT022024/evCancMDFe_v3.00.xsd new file mode 100644 index 000000000..823fe1a04 --- /dev/null +++ b/src/main/resources/schemas/PL_MDFe_300b_NT022024/evCancMDFe_v3.00.xsd @@ -0,0 +1,38 @@ + + + + + + Schema XML de validação do evento do cancelamento +110111 + + + + + + Descrição do Evento - “Cancelamento” + + + + + + + + + + + Número do Protocolo de Status do MDF-e. +1 posição tipo de autorizador (9 -SEFAZ Nacional ); +2 posições ano; +10 seqüencial no ano. + + + + + Justificativa do Cancelamento + + + + + + diff --git a/src/main/resources/schemas/PL_MDFe_300b_NT022024/evConfirmaServMDFe_v3.00.xsd b/src/main/resources/schemas/PL_MDFe_300b_NT022024/evConfirmaServMDFe_v3.00.xsd new file mode 100644 index 000000000..90511fd58 --- /dev/null +++ b/src/main/resources/schemas/PL_MDFe_300b_NT022024/evConfirmaServMDFe_v3.00.xsd @@ -0,0 +1,34 @@ + + + + + + + Schema XML de validação do evento de confirmação do serviço de transporte 110117 + + + + + + Descrição do Evento - “Confirmação Serviço Transporte” + + + + + + + + + + + + Número do Protocolo de Status do MDF-e. +1 posição tipo de autorizador (9 - SEFAZ Nacional ); +2 posições ano; +10 seqüencial no ano. + + + + + + diff --git a/src/main/resources/schemas/PL_MDFe_300b_NT022024/evEncMDFe_v3.00.xsd b/src/main/resources/schemas/PL_MDFe_300b_NT022024/evEncMDFe_v3.00.xsd new file mode 100644 index 000000000..dc69957b2 --- /dev/null +++ b/src/main/resources/schemas/PL_MDFe_300b_NT022024/evEncMDFe_v3.00.xsd @@ -0,0 +1,59 @@ + + + + + + Schema XML de validação do evento do encerramento +110112 + + + + + + Descrição do Evento - “Encerramento” + + + + + + + + + + + Número do Protocolo de Status do MDF-e. +1 posição tipo de autorizador (9 - SEFAZ Nacional ); +2 posições ano; +10 seqüencial no ano. + + + + + Data que o Manifesto foi encerrado + + + + + UF de encerramento do Manifesto + + + + + Código do Município de Encerramento do manifesto + + + + + Indicador que deve ser informado quando o encerramento for registrado pelo transportador terceiro + Informar valor 1 quando o MDFe for encerrado pelo transportador terceiro, este sendo diferente do emitente do MDFe + + + + + + + + + + + diff --git a/src/main/resources/schemas/PL_MDFe_300b_NT022024/evIncCondutorMDFe_v3.00.xsd b/src/main/resources/schemas/PL_MDFe_300b_NT022024/evIncCondutorMDFe_v3.00.xsd new file mode 100644 index 000000000..aea57e4f9 --- /dev/null +++ b/src/main/resources/schemas/PL_MDFe_300b_NT022024/evIncCondutorMDFe_v3.00.xsd @@ -0,0 +1,49 @@ + + + + + + Schema XML de validação do evento de inclusao de condutor 110114 + + + + + + Descrição do Evento - “Inclusao Condutor” + + + + + + + + + + + Informações do(s) Condutor(s) do veículo + + + + + + Nome do Condutor + + + + + + + + + + + CPF do Condutor + + + + + + + + + diff --git a/src/main/resources/schemas/PL_MDFe_300b_NT022024/evInclusaoDFeMDFe_v3.00.xsd b/src/main/resources/schemas/PL_MDFe_300b_NT022024/evInclusaoDFeMDFe_v3.00.xsd new file mode 100644 index 000000000..844232bc0 --- /dev/null +++ b/src/main/resources/schemas/PL_MDFe_300b_NT022024/evInclusaoDFeMDFe_v3.00.xsd @@ -0,0 +1,81 @@ + + + + + + + Schema XML de validação do evento de inclusão de DFe +110115 + + + + + + Descrição do Evento - “Inclusão DF-e” + + + + + + + + + + + + Número do Protocolo de Status do MDF-e. +1 posição tipo de autorizador (9 - SEFAZ Nacional ); +2 posições ano; +10 seqüencial no ano. + + + + + Código do Município de Carregamento + + + + + Nome do Município de Carregamento + + + + + + + + + + + Informações dos Documentos fiscais vinculados ao manifesto + + + + + + Código do Município de Descarregamento + + + + + Nome do Município de Descarregamento + + + + + + + + + + + Nota Fiscal Eletrônica + + + + + + + + + diff --git a/src/main/resources/schemas/PL_MDFe_300b_NT022024/evPagtoOperMDFe_v3.00.xsd b/src/main/resources/schemas/PL_MDFe_300b_NT022024/evPagtoOperMDFe_v3.00.xsd new file mode 100644 index 000000000..6dd3eb4e9 --- /dev/null +++ b/src/main/resources/schemas/PL_MDFe_300b_NT022024/evPagtoOperMDFe_v3.00.xsd @@ -0,0 +1,287 @@ + + + + + + + Schema XML de validação do evento de pagamento da operação de transporte 110116 + + + + + + Descrição do Evento - “Pagamento Operação MDF-e” + + + + + + + + + + + + Número do Protocolo de Status do MDF-e. +1 posição tipo de autorizador (9 - SEFAZ Nacional ); +2 posições ano; +10 seqüencial no ano. + + + + + Informações do total de viagens acobertadas pelo Evento “pagamento do frete” + + + + + + Quantidade total de viagens realizadas com o pagamento do Frete + + + + + + + + + + Número de referência da viagem do MDFe referenciado. + + + + + + + + + + + + + Informações do Pagamento do Frete + + + + + + Razão social ou Nome do responsavel pelo pagamento + + + + + + + + + + + + Número do CPF do responsável pelo pgto + Informar os zeros não significativos. + + + + + Número do CNPJ do responsável pelo pgto + Informar os zeros não significativos. + + + + + Identificador do responsável pelo pgto em caso de ser estrangeiro + + + + + + + + + + + + + + Componentes do Pagamentoi do Frete + + + + + + Tipo do Componente + +01 - Vale Pedágio; +02 - Impostos, taxas e contribuições; +03 - Despesas (bancárias, meios de pagamento, outras) +; 99 - Outros + + + + + + + + + + + + + + Valor do componente + + + + + Descrição do componente do tipo Outros + + + + + + + + + + + + + + Valor Total do Contrato + + + + + Indicador da Forma de Pagamento:0-Pagamento à Vista;1-Pagamento à Prazo; + + + + + + + + + + + + Valor do Adiantamento (usar apenas em pagamento à Prazo + + + + + Indicador para declarar concordância em antecipar o adiantamento + Operação de transporte com utilização de veículos de frotas dedicadas ou fidelizadas. +Preencher com “1” para indicar operação de transporte de alto desempenho, demais casos não informar a tag + + + + + + + + + + + Informações do pagamento a prazo. + Informar somente se indPag for à Prazo + + + + + + Número da Parcela + + + + + + + + + + + Data de vencimento da Parcela (AAAA-MM-DD) + + + + + Valor da Parcela + + + + + + + + Tipo de Permissão em relação a antecipação das parcelas + 0 - Não permite antecipar +1 - Permite antecipar as parcelas +2 - Permite antecipar as parcelas mediante confirmação + + + + + + + + + + + + Informações bancárias + + + + + + + Número do banco + + + + + + + + + + + Número da agência bancária + + + + + + + + + + + + Número do CNPJ da Instituição de Pagamento Eletrônico do Frete + Informar os zeros não significativos. + + + + + Chave PIX + Informar a chave PIX para recebimento do frete. +Pode ser email, CPF/ CNPJ (somente numeros), Telefone com a seguinte formatação (+5599999999999) ou a chave aleatória gerada pela instituição. + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/schemas/PL_MDFe_300b_NT022024/eventoMDFeTiposBasico_v3.00.xsd b/src/main/resources/schemas/PL_MDFe_300b_NT022024/eventoMDFeTiposBasico_v3.00.xsd new file mode 100644 index 000000000..096d6c053 --- /dev/null +++ b/src/main/resources/schemas/PL_MDFe_300b_NT022024/eventoMDFeTiposBasico_v3.00.xsd @@ -0,0 +1,300 @@ + + + + + + + + Tipo Evento + + + + + + + + Código do órgão de recepção do Evento. Utilizar a Tabela do IBGE extendida, utilizar 90 para identificar SUFRAMA, 91 para RFB, 93 para ONE, 94 para SVBA + + + + + Identificação do Ambiente: +1 - Produção +2 - Homologação + + + + + Identificação do autor do evento + + + + CNPJ do autor + Informar zeros não significativos + + + + + CPF do Autor + Informar zeros não significativos. +Usar com serie específica 920-969 para emitente pessoa física com inscrição estadual, ou para emissor TAC do Regime Especial da Nota Fiscal Fácil + + + + + + Chave de Acesso do MDF-e vinculado ao evento + + + + + Data e Hora do Evento, formato AAAA-MM-DDThh:mm:ss TZD + + + + + Tipo do Evento: +110111 - Cancelamento +110112 - Encerramento +110114 - Inclusão de Condutor +310620 - Registro de Passagem +510620 - Registro de Passagem BRId + + + + + Seqüencial do evento para o mesmo tipo de evento. Para maioria dos eventos será 1, nos casos em que possa existir mais de um evento o autor do evento deve numerar de forma seqüencial. + + + + + + + + + + + Detalhamento do evento específico + + + + + + XML do evento +Insira neste local o XML específico do tipo de evento (cancelamento, encerramento, registro de passagem). + + + + + + + + + Grupo de informações do pedido de registro de evento da Nota Fiscal Fácil + + + + + + Solicitação do pedido de registro de evento da NFF. + Será preenchido com a totalidade de campos informados no aplicativo emissor serializado. + + + + + + + + + + + + + + Grupo de Informação do Provedor de Assinatura e Autorização + + + + + + CNPJ do Provedor de Assinatura e Autorização + + + + + Assinatura RSA do Emitente para DFe gerados por PAA + + + + + + Assinatura digital padrão RSA + Converter o atributo Id do DFe para array de bytes e assinar com a chave privada do RSA com algoritmo SHA1 gerando um valor no formato base64. + + + + + Chave Publica no padrão XML RSA Key + + + + + + + + + + + + Identificador da TAG a ser assinada, a regra de formação do Id é: +“ID” + tpEvento + chave do MDF-e + nSeqEvento + + + + + + + + + + + + + + + + Tipo retorno do Evento + + + + + + + + Identificação do Ambiente: +1 - Produção +2 - Homologação + + + + + Versão do Aplicativo que recebeu o Evento + + + + + Código do órgão de recepção do Evento. Utilizar a Tabela do IBGE extendida, utilizar 90 para identificar SUFRAMA, 91 RFB, 92 BackOffice BRId e 93 ONE + + + + + Código do status da registro do Evento + + + + + Descrição literal do status do registro do Evento + + + + + Chave de Acesso MDF-e vinculado + + + + + Tipo do Evento vinculado + + + + + + + + + + + Descrição do Evento + + + + + + + + + + + Seqüencial do evento + + + + + + + + + + + Data e Hora de do recebimento do evento ou do registro do evento formato AAAA-MM-DDThh:mm:ss TZD + + + + + Número do protocolo de registro do evento + + + + + + + + + + + + + + + + + + + Tipo procEvento + + + + + + + + + IP do transmissor do documento fiscal para o ambiente autorizador + + + + + Porta de origem utilizada na conexão (De 0 a 65535) + + + + + + + + + + Data e Hora da Conexão de Origem + + + + + + Tipo Versão do Evento + + + + + + + diff --git a/src/main/resources/schemas/PL_MDFe_300b_NT022024/eventoMDFe_v3.00.xsd b/src/main/resources/schemas/PL_MDFe_300b_NT022024/eventoMDFe_v3.00.xsd new file mode 100644 index 000000000..f979645f2 --- /dev/null +++ b/src/main/resources/schemas/PL_MDFe_300b_NT022024/eventoMDFe_v3.00.xsd @@ -0,0 +1,9 @@ + + + + + + Schema XML de validação do Pedido de Registro de Evento do MDF-e + + + diff --git a/src/main/resources/schemas/PL_MDFe_300b_NT022024/leiauteDistMDFe_v3.00.xsd b/src/main/resources/schemas/PL_MDFe_300b_NT022024/leiauteDistMDFe_v3.00.xsd new file mode 100644 index 000000000..e8bedca95 --- /dev/null +++ b/src/main/resources/schemas/PL_MDFe_300b_NT022024/leiauteDistMDFe_v3.00.xsd @@ -0,0 +1,136 @@ + + + + + + + Tipo Versão + + + + + + + + Schema XML de validação da área de dados da mensagem da solicitação de distribuição de DF-e + + + + + Identificação do Ambiente: 1 - Produção 2 - Homologação + + + + + Versão do Aplicativo que solicitou a distribuição de DF-e + + + + + Indicador de DF-e solicitados: +0 - DF-e autorizados pela UF; +1 - DF-e com carregamento na UF; +2 – DF-e com descarregamento na UF; +3 – DF-e com percurso pela UF; +8 – DF-e carregados (1), descarregados (2) e que tiveram percurso na UF (3); +9 - Todos DF-e que fazem referência a UF. + + + + + + + + + + + + + + + + Indicador de Compactação da Mensagem de retorno: 0 - sem compactação; 1 - compactação padrão gZip + + + + + + + + + + + último NSU recebido, caso seja informado com zero, o Ambiente Autorizador tentará localizar o primeiro DF-e existente. + + + + + + + + Schema XML de validação do lote de retorno de documentos ficais eletronicos + + + + + Identificação do Ambiente: 1 - Produção 2 - Homologação + + + + + Versão do Aplicativo que atendeu a pedido de distribuição de DF-e + + + + + código do status de resultado da pesquisa + + + + + descrição do resultado do pesquisa + + + + + último NSU + + + + + + + + + + + + Schema XML de validação da área de dados descompactada + + + + + + + + informação do proc + + + + + + Identificação do Schema XML de validação do proc, Ex. procMDFe_v1.00.xsd. + + + + + número sequencial único do Ambiente Autorizador + + + + + + + + + diff --git a/src/main/resources/schemas/PL_MDFe_300b_NT022024/mdfeConsultaDFeTiposBasico_v3.00.xsd b/src/main/resources/schemas/PL_MDFe_300b_NT022024/mdfeConsultaDFeTiposBasico_v3.00.xsd new file mode 100644 index 000000000..c46fdde8f --- /dev/null +++ b/src/main/resources/schemas/PL_MDFe_300b_NT022024/mdfeConsultaDFeTiposBasico_v3.00.xsd @@ -0,0 +1,99 @@ + + + + + + Tipo Pedido de Consulta do Manifesto Eletrônico de Documentos Fiscais + + + + + Identificação do Ambiente: +1 - Produção +2 - Homologação + + + + + Serviço Solicitado + + + + + Chaves de acesso do MDF-e, compostas por: UF do emitente, AAMM da emissão do MDF-e, CNPJ do emitente, modelo, série e número do MDF-e e código numérico + DV. + + + + + + + + Tipo Retorno de Pedido de Consulta do Manifesto Eletrônico de Documentos Fiscais + + + + + Identificação do Ambiente: +1 - Produção +2 - Homologação + + + + + Versão do Aplicativo que processou a consulta do MDF-e + + + + + Código do status da consulta do MDF-e + + + + + Descrição literal do status da consulta do MDF-e + + + + + + + + + Tipo Documento Fiscal Eletrônico MDF-e + + + + + + + + Autorização de Uso do MDF-e + + + + + + + + + + + + Demais eventos vinculados ao MDF-e + + + + + + + + + + + Tipo Versão do Consulta DFe de MDF-e - 3.00 + + + + + + diff --git a/src/main/resources/schemas/PL_MDFe_300b_NT022024/mdfeConsultaDFe_v3.00.xsd b/src/main/resources/schemas/PL_MDFe_300b_NT022024/mdfeConsultaDFe_v3.00.xsd new file mode 100644 index 000000000..78fb9e49a --- /dev/null +++ b/src/main/resources/schemas/PL_MDFe_300b_NT022024/mdfeConsultaDFe_v3.00.xsd @@ -0,0 +1,9 @@ + + + + + + Schema de validação XML do Pedido de Consulta do MDF-e. + + + diff --git a/src/main/resources/schemas/PL_MDFe_300b_NT022024/mdfeModalAereo_v3.00.xsd b/src/main/resources/schemas/PL_MDFe_300b_NT022024/mdfeModalAereo_v3.00.xsd new file mode 100644 index 000000000..5f5173228 --- /dev/null +++ b/src/main/resources/schemas/PL_MDFe_300b_NT022024/mdfeModalAereo_v3.00.xsd @@ -0,0 +1,83 @@ + + + + + + + Informações do modal Aéreo + + + + + + Marca da Nacionalidade da aeronave + + + + + + + + + + + + + Marca de Matrícula da aeronave + + + + + + + + + + + + + Número do Voo + Formato = AB1234, sendo AB a designação da empresa e 1234 o número do voo. Quando não for possível incluir as marcas de nacionalidade e matrícula sem hífen. + + + + + + + + + + + + Aeródromo de Embarque + O código de três letras IATA do aeroporto de partida deverá ser incluído como primeira anotação. Quando não for possível, utilizar a sigla OACI. + + + + + + + + + + + Aeródromo de Destino + O código de três letras IATA do aeroporto de destino deverá ser incluído como primeira anotação. Quando não for possível, utilizar a sigla OACI. + + + + + + + + + + + Data do Voo + Formato AAAA-MM-DD + + + + + + diff --git a/src/main/resources/schemas/PL_MDFe_300b_NT022024/mdfeModalAquaviario_v3.00.xsd b/src/main/resources/schemas/PL_MDFe_300b_NT022024/mdfeModalAquaviario_v3.00.xsd new file mode 100644 index 000000000..d34a91bd6 --- /dev/null +++ b/src/main/resources/schemas/PL_MDFe_300b_NT022024/mdfeModalAquaviario_v3.00.xsd @@ -0,0 +1,274 @@ + + + + + + + Informações do modal Aquaviário + + + + + + Irin do navio sempre deverá ser informado + + + + + + + + + + + + Código do tipo de embarcação + Preencher com código da Tabela de Tipo de Embarcação definida no Ministério dos Transportes + + + + + + + + + + + Código da embarcação + + + + + + + + + + + Nome da embarcação + + + + + + + + + + + Número da Viagem + + + + + + + + + + + Código do Porto de Embarque + Preencher de acordo com Tabela de Portos definida no Ministério dos Transportes + + + + + + + + + + + Código do Porto de Destino + Preencher de acordo com Tabela de Portos definida no Ministério dos Transportes + + + + + + + + + + + Porto de Transbordo + + + + + + + + + + + Tipo de Navegação + Preencher com: + 0 - Interior; + 1 - Cabotagem + + + + + + + + + + + + Grupo de informações dos terminais de carregamento. + + + + + + Código do Terminal de Carregamento + Preencher de acordo com a Tabela de Terminais de Carregamento. O código de cada Porto está definido no Ministério de Transportes. + + + + + + + + + + + Nome do Terminal de Carregamento + + + + + + + + + + + + + + Grupo de informações dos terminais de descarregamento. + + + + + + Código do Terminal de Descarregamento + Preencher de acordo com a Tabela de Terminais de Descarregamento. O código de cada Porto está definido no Ministério de Transportes. + + + + + + + + + + + Nome do Terminal de Descarregamento + + + + + + + + + + + + + + Informações das Embarcações do Comboio + + + + + + Código da embarcação do comboio + + + + + + + + + + + Identificador da Balsa + + + + + + + + + + + + + + Informações das Undades de Carga vazias + + + + + + Identificação da unidades de carga vazia + + + + + Tipo da unidade de carga vazia + 1 - Container; 2 - ULD;3 - Pallet;4 - Outros; + + + + + + + + + + + + + + + + + + Informações das Undades de Transporte vazias + + + + + + Identificação da unidades de transporte vazia + + + + + Tipo da unidade de transporte vazia + Deve ser preenchido com “1” para Rodoviário Tração do tipo caminhão ou “2” para Rodoviário reboque do tipo carreta + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/schemas/PL_MDFe_300b_NT022024/mdfeModalFerroviario_v3.00.xsd b/src/main/resources/schemas/PL_MDFe_300b_NT022024/mdfeModalFerroviario_v3.00.xsd new file mode 100644 index 000000000..6f043e0f6 --- /dev/null +++ b/src/main/resources/schemas/PL_MDFe_300b_NT022024/mdfeModalFerroviario_v3.00.xsd @@ -0,0 +1,145 @@ + + + + + + + Informações do modal Ferroviário + + + + + + Informações da composição do trem + + + + + + Prefixo do Trem + + + + + + + + + + + Data e hora de liberação do trem na origem + + + + + Origem do Trem + Sigla da estação de origem + + + + + + + + + + + Destino do Trem + Sigla da estação de destino + + + + + + + + + + + Quantidade de vagões carregados + + + + + + + + + + + + + informações dos Vagões + + + + + + Peso Base de Cálculo de Frete em Toneladas + + + + + Peso Real em Toneladas + + + + + Tipo de Vagão + + + + + + + + + + Serie de Identificação do vagão + + + + + + + + + + Número de Identificação do vagão + + + + + + + + + + + + + Sequencia do vagão na composição + + + + + + + + + + + Tonelada Útil + Unidade de peso referente à carga útil (apenas o peso da carga transportada), expressa em toneladas. + + + + + + + + + + + + diff --git a/src/main/resources/schemas/PL_MDFe_300b_NT022024/mdfeModalRodoviario_v3.00.xsd b/src/main/resources/schemas/PL_MDFe_300b_NT022024/mdfeModalRodoviario_v3.00.xsd new file mode 100644 index 000000000..64301c0d7 --- /dev/null +++ b/src/main/resources/schemas/PL_MDFe_300b_NT022024/mdfeModalRodoviario_v3.00.xsd @@ -0,0 +1,926 @@ + + + + + + + Tipo RNTRC - Registro Nacional Transportadores Rodoviários de Carga + + + + + + + + + Tipo CIOT - Código Identificador da Operação de Transporte + + + + + + + + + Informações do modal Rodoviário + + + + + + Grupo de informações para Agência Reguladora + + + + + + Registro Nacional de Transportadores Rodoviários de Carga + Registro obrigatório do emitente do MDF-e junto à ANTT para exercer a atividade de transportador rodoviário de cargas por conta de terceiros e mediante remuneração. + + + + + + Dados do CIOT + + + + + + Código Identificador da Operação de Transporte + Também Conhecido como conta frete + + + + + + + + + Número do CPF responsável pela geração do CIOT + Informar os zeros não significativos. + + + + + Número do CNPJ responsável pela geração do CIOT + Informar os zeros não significativos. + + + + + + + + + Informações de Vale Pedágio + Outras informações sobre Vale-Pedágio obrigatório que não tenham campos específicos devem ser informadas no campo de observações gerais de uso livre pelo contribuinte, visando atender as determinações legais vigentes. + + + + + + Informações dos dispositivos do Vale Pedágio + + + + + + CNPJ da empresa fornecedora do Vale-Pedágio + - CNPJ da Empresa Fornecedora do Vale-Pedágio, ou seja, empresa que fornece ao Responsável pelo Pagamento do Vale-Pedágio os dispositivos do Vale-Pedágio. + - Informar os zeros não significativos. + + + + + + + + + CNPJ do responsável pelo pagamento do Vale-Pedágio + - responsável pelo pagamento do Vale Pedágio. Informar somente quando o responsável não for o emitente do MDF-e. + - Informar os zeros não significativos. + + + + + CNPJ do responsável pelo pagamento do Vale-Pedágio + Informar os zeros não significativos. + + + + + + Número do comprovante de compra + Número de ordem do comprovante de compra do Vale-Pedágio fornecido para cada veículo ou combinação veicular, por viagem. + + + + + + + + + + Valor do Vale-Pedagio + Valor do Vale-Pedágio obrigatório necessário à livre circulação, desde a origem da operação de transporte até o destino, do transportador contratado. + + + + + Tipo do Vale Pedagio + +01 - TAG; 02 - Cupom; 03 - Cartão + + + + + + + + + + + + + + + + Categoria de Combinação Veicular + Preencher com: + +02 Veículo Comercial 2 eixos;0 +4 Veículo Comercial 3 eixos; +06 Veículo Comercial 4 eixos;0 +7 Veículo Comercial 5 eixos; 0 +8 Veículo Comercial 6 eixos; +10 Veículo Comercial 7 eixos; +11 Veículo Comercial 8 eixos; +12 Veículo Comercial 9 eixos; +13 Veículo Comercial 10 eixos; +14 Veículo Comercial Acima de 10 eixos; + + + + + + + + + + + + + + + + + + + + + + + Grupo de informações dos contratantes do serviço de transporte + + + + + + Razão social ou Nome do contratante + + + + + + + + + + + + Número do CPF do contratante do serviço + Informar os zeros não significativos. + + + + + Número do CNPJ do contratante do serviço + Informar os zeros não significativos. + + + + + Identificador do contratante em caso de contratante estrangeiro + + + + + + + + + + + + + + Grupo de informações do contrato entre transportador e contratante + + + + + + Número do contrato do transportador com o contratante quando este existir para prestações continuadas + + + + + + + + + + + + Valor global do contrato + + + + + + + + + + + Informações do Pagamento do Frete + + + + + + Razão social ou Nome do respnsável pelo pagamento + + + + + + + + + + + + Número do CPF do responsável pelo pgto + Informar os zeros não significativos. + + + + + Número do CNPJ do responsável pelo pgto + Informar os zeros não significativos. + + + + + Identificador do responsável pelo pgto em caso de ser estrangeiro + + + + + + + + + + + + + + Componentes do Pagamentoi do Frete + + + + + + Tipo do Componente + +Preencher com: 01 - Vale Pedágio; +02 - Impostos, taxas e contribuições; +03 - Despesas (bancárias, meios de pagamento, outras) +; 99 - Outros + + + + + + + + + + + + + + Valor do componente + + + + + Descrição do componente do tipo Outros + + + + + + + + + + + + + + Valor Total do Contrato + + + + + Indicador de operação de transporte de alto desempenho + Operação de transporte com utilização de veículos de frotas dedicadas ou fidelizadas. +Preencher com “1” para indicar operação de transporte de alto desempenho, demais casos não informar a tag + + + + + + + + + + + Indicador da Forma de Pagamento:0-Pagamento à Vista;1-Pagamento à Prazo; + + + + + + + + + + + + Valor do Adiantamento (usar apenas em pagamento à Prazo + + + + + Indicador para declarar concordância em antecipar o adiantamento + Informar a tag somente se for autorizado antecipar o adiantamento + + + + + + + + + + Informações do pagamento a prazo. + Informar somente se indPag for à Prazo + + + + + + Número da Parcela + + + + + + + + + + + Data de vencimento da Parcela (AAAA-MM-DD) + + + + + Valor da Parcela + + + + + + + + Tipo de Permissão em relação a antecipação das parcelas + 0 - Não permite antecipar + +1 - Permite antecipar as parcelas + +2 - Permite antecipar as parcelas mediante confirmação + + + + + + + + + + + + Informações bancárias + + + + + + + Número do banco + + + + + + + + + + + Número da agência bancária + + + + + + + + + + + + Número do CNPJ da Instituição de Pagamento Eletrônico do Frete + Informar os zeros não significativos. + + + + + Chave PIX + Informar a chave PIX para recebimento do frete. +Pode ser email, CPF/ CNPJ (somente numeros), Telefone com a seguinte formatação (+5599999999999) ou a chave aleatória gerada pela instituição. + + + + + + + + + + + + + + + + + + + + Dados do Veículo com a Tração + + + + + + Código interno do veículo + + + + + + + + + + + Placa do veículo + + + + + + + + RENAVAM do veículo + + + + + + + + + + + Tara em KG + + + + + + + + + + + Capacidade em KG + + + + + + + + + + + Capacidade em M3 + + + + + + + + + + + Proprietário ou possuidor do Veículo. +Só preenchido quando o veículo não pertencer à empresa emitente do MDF-e + + + + + + + Número do CPF + Informar os zeros não significativos. + + + + + Número do CNPJ + Informar os zeros não significativos. + + + + + + Registro Nacional dos Transportadores Rodoviários de Carga + Registro obrigatório do proprietário, co-proprietário ou arrendatário do veículo junto à ANTT para exercer a atividade de transportador rodoviário de cargas por conta de terceiros e mediante remuneração. + + + + + Razão Social ou Nome do proprietário + + + + + + + + + + + + Inscrição Estadual + + + + + + + + UF + + + + + + Tipo Proprietário ou possuidor + Preencher com: + 0-TAC Agregado; + 1-TAC Independente; + 2 – Outros. + + + + + + + + + + + + + + + + Informações do(s) Condutor(es) do veículo + + + + + + Nome do Condutor + + + + + + + + + + + CPF do Condutor + + + + + + + + Tipo de Rodado + Preencher com: + 01 - Truck; + 02 - Toco; + 03 - Cavalo Mecânico; + 04 - VAN; + 05 - Utilitário; + 06 - Outros. + + + + + + + + + + + + + + + + Tipo de Carroceria + Preencher com: + 00 - não aplicável; + 01 - Aberta; + 02 - Fechada/Baú; + 03 - Granelera; + 04 - Porta Container; + 05 - Sider + + + + + + + + + + + + + + + + UF em que veículo está licenciado + Sigla da UF de licenciamento do veículo. + + + + + + + + Dados dos reboques + + + + + + + Código interno do veículo + + + + + + + + + + + Placa do veículo + + + + + + + + RENAVAM do veículo + + + + + + + + + + + Tara em KG + + + + + + + + + + + Capacidade em KG + + + + + + + + + + + Capacidade em M3 + + + + + + + + + + + Proprietários ou possuidor do Veículo. +Só preenchido quando o veículo não pertencer à empresa emitente do MDF-e + + + + + + + Número do CPF + Informar os zeros não significativos. + + + + + Número do CNPJ + Informar os zeros não significativos. + + + + + + Registro Nacional dos Transportadores Rodoviários de Carga + Registro obrigatório do proprietário, co-proprietário ou arrendatário do veículo junto à ANTT para exercer a atividade de transportador rodoviário de cargas por conta de terceiros e mediante remuneração. + + + + + Razão Social ou Nome do proprietário + + + + + + + + + + + + Inscrição Estadual + + + + + + + + UF + + + + + + Tipo Proprietário ou possuidor + Preencher com: + 0-TAC Agregado; + 1-TAC Independente; + 2 – Outros. + + + + + + + + + + + + + + + + Tipo de Carroceria + Preencher com: + 00 - não aplicável; + 01 - Aberta; + 02 - Fechada/Baú; + 03 - Granelera; + 04 - Porta Container; + 05 - Sider + + + + + + + + + + + + + + + + UF em que veículo está licenciado + Sigla da UF de licenciamento do veículo. + + + + + + + + Código de Agendamento no porto + + + + + + + + + + + Lacres + + + + + + Número do Lacre + + + + + + + + + + + + + + + diff --git a/src/main/resources/schemas/PL_MDFe_300b_NT022024/mdfeTiposBasico_v3.00.xsd b/src/main/resources/schemas/PL_MDFe_300b_NT022024/mdfeTiposBasico_v3.00.xsd new file mode 100644 index 000000000..de1a7b3f3 --- /dev/null +++ b/src/main/resources/schemas/PL_MDFe_300b_NT022024/mdfeTiposBasico_v3.00.xsd @@ -0,0 +1,2523 @@ + + + + + + + + Tipo Manifesto de Documentos Fiscais Eletrônicos + + + + + Informações do MDF-e + + + + + + Identificação do MDF-e + + + + + + Código da UF do emitente do MDF-e + Código da UF do emitente do Documento Fiscal. Utilizar a +Tabela do IBGE de código de unidades da federação. + + + + + Tipo do Ambiente + 1 - Produção +2 - Homologação + + + + + Tipo do Emitente + + 1 - Prestador de serviço de transporte +2 - Transportador de Carga Própria 3 - Prestador de serviço de transporte que emitirá CT-e Globalizado + +OBS: Deve ser preenchido com 2 para emitentes de NF-e e pelas transportadoras quando estiverem fazendo transporte de carga própria. Deve ser preenchido com 3 para transportador de carga que emitirá à posteriori CT-e Globalizado relacionando as NF-e. + + + + + Tipo do Transportador + 1 - ETC + +2 - TAC + +3 - CTC + + + + + Modelo do Manifesto Eletrônico + Utilizar o código 58 para identificação do MDF-e + + + + + Série do Manifesto + Informar a série do documento fiscal (informar zero se inexistente). +Série na faixa [920-969]: Reservada para emissão por contribuinte pessoa física com inscrição estadual. + + + + + Número do Manifesto + Número que identifica o Manifesto. 1 a 999999999. + + + + + Código numérico que compõe a Chave de Acesso. + Código aleatório gerado pelo emitente, com o objetivo de evitar acessos indevidos ao documento. + + + + + + + + + + + Digito verificador da chave de acesso do Manifesto + Informar o dígito de controle da chave de acesso do MDF-e, que deve ser calculado com a aplicação do algoritmo módulo 11 (base 2,9) da chave de acesso. + + + + + + + + + + + Modalidade de transporte + 1 - Rodoviário; +2 - Aéreo; 3 - Aquaviário; 4 - Ferroviário. + + + + + Data e hora de emissão do Manifesto + Formato AAAA-MM-DDTHH:MM:DD TZD + + + + + Forma de emissão do Manifesto + 1 - Normal +; 2 - Contingência; 3-Regime Especial NFF + + + + + + + + + + + + + Identificação do processo de emissão do Manifesto + 0 - emissão de MDF-e com aplicativo do contribuinte + + + + + + + + Versão do processo de emissão + Informar a versão do aplicativo emissor de MDF-e. + + + + + + + + + + + Sigla da UF do Carregamento + Utilizar a Tabela do IBGE de código de unidades da federação. +Informar 'EX' para operações com o exterior. + + + + + Sigla da UF do Descarregamento + Utilizar a Tabela do IBGE de código de unidades da federação. +Informar 'EX' para operações com o exterior. + + + + + Informações dos Municípios de Carregamento + + + + + + Código do Município de Carregamento + + + + + Nome do Município de Carregamento + + + + + + + + + + + + + + Informações do Percurso do MDF-e + + + + + + Sigla das Unidades da Federação do percurso do veículo. + Não é necessário repetir as UF de Início e Fim + + + + + + + + Data e hora previstos de inicio da viagem + Formato AAAA-MM-DDTHH:MM:DD TZD + + + + + Indicador de participação do Canal Verde + + + + + + + + + + Indicador de MDF-e com inclusão da Carga posterior a emissão por evento de inclusão de DF-e + + + + + + + + + + + + + Identificação do Emitente do Manifesto + + + + + + + CNPJ do emitente + Informar zeros não significativos + + + + + CPF do emitente + Informar zeros não significativos. + +Usar com série específica 920-969 para emitente pessoa física com inscrição estadual. +Poderá ser usado também para emissão do Regime Especial da Nota Fiscal Fácil + + + + + + Inscrição Estadual do emitemte + + + + + + + + Razão social ou Nome do emitente + + + + + + + + + + + Nome fantasia do emitente + + + + + + + + + + + Endereço do emitente + + + + + + + + Informações do modal + + + + + + XML do modal +Insira neste local o XML específico do modal (rodoviário, aéreo, ferroviário ou aquaviário). + O elemento do tipo -any- permite estender o documento XML com elementos não especificados pelo schema. + Insira neste local - any- o XML específico do modal (rodoviário, aéreo, ferroviário ou aquaviário). A especificação do schema XML para cada modal pode ser encontrada nos arquivos que acompanham este pacote de liberação: + +Rodoviário - ver arquivo MDFeModalRodoviario_v9.99 + Aéreo - ver arquivo MDFeModalAereo_v9.99 + Aquaviário - arquivo MDFeModalAquaviario_v9.99 + Ferroviário - arquivo MDFeModalFerroviario_v9.99 + + +Onde v9.99 é a a designação genérica para a versão do arquivo. +Por exemplo, o arquivo para o schema do modal Rodoviário na versão 1.00 será denominado "MDFeModalRodoviario_v1.00". + + + + + + Versão do leiaute específico para o Modal + + + + + + + + + + + + + Informações dos Documentos fiscais vinculados ao manifesto + + + + + + Informações dos Municípios de descarregamento + + + + + + Código do Município de Descarregamento + + + + + Nome do Município de Descarregamento + + + + + + + + + + + Conhecimentos de Tranporte - usar este grupo quando for prestador de serviço de transporte + + + + + + Conhecimento Eletrônico - Chave de Acesso + + + + + Segundo código de barras + + + + + Indicador de Reentrega + + + + + + + + + + Informações das Unidades de Transporte (Carreta/Reboque/Vagão) + Deve ser preenchido com as informações das unidades de transporte utilizadas. + + + + + Preenchido quando for transporte de produtos classificados pela ONU como perigosos. + + + + + + Número ONU/UN + Ver a legislação de transporte de produtos perigosos aplicadas ao modal + + + + + + + + + + + Nome apropriado para embarque do produto + Ver a legislação de transporte de produtos perigosos aplicada ao modo de transporte + + + + + + + + + + + Classe ou subclasse/divisão, e risco subsidiário/risco secundário + Ver a legislação de transporte de produtos perigosos aplicadas ao modal + + + + + + + + + + + Grupo de Embalagem + Ver a legislação de transporte de produtos perigosos aplicadas ao modal + Preenchimento obrigatório para o modal aéreo. + A legislação para o modal rodoviário e ferroviário não atribui grupo de embalagem para todos os produtos, portanto haverá casos de não preenchimento desse campo. + + + + + + + + + + + Quantidade total por produto + Preencher conforme a legislação de transporte de produtos perigosos aplicada ao modal + + + + + + + + + + + Quantidade e Tipo de volumes + Preencher conforme a legislação de transporte de produtos perigosos aplicada ao modal + + + + + + + + + + + + + + Grupo de informações da Entrega Parcial (Corte de Voo) + + + + + + Quantidade total de volumes + + + + + Quantidade de volumes enviados no MDF-e + + + + + + + + + Indicador de Prestação parcial + + + + + + + + + + + Grupo de informações das NFe que foram entregues do CTe relacionado + + + + + + Nota Fiscal Eletrônica + + + + + + + + + + + + Nota Fiscal Eletronica + + + + + + Nota Fiscal Eletrônica + + + + + Segundo código de barras + + + + + Indicador de Reentrega + + + + + + + + + + Informações das Unidades de Transporte (Carreta/Reboque/Vagão) + Deve ser preenchido com as informações das unidades de transporte utilizadas. + + + + + Preenchido quando for transporte de produtos classificados pela ONU como perigosos. + + + + + + Número ONU/UN + Ver a legislação de transporte de produtos perigosos aplicadas ao modal + + + + + + + + + + + Nome apropriado para embarque do produto + Ver a legislação de transporte de produtos perigosos aplicada ao modo de transporte + + + + + + + + + + + Classe ou subclasse/divisão, e risco subsidiário/risco secundário + Ver a legislação de transporte de produtos perigosos aplicadas ao modal + + + + + + + + + + + Grupo de Embalagem + Ver a legislação de transporte de produtos perigosos aplicadas ao modal + Preenchimento obrigatório para o modal aéreo. + A legislação para o modal rodoviário e ferroviário não atribui grupo de embalagem para todos os produtos, portanto haverá casos de não preenchimento desse campo. + + + + + + + + + + + Quantidade total por produto + Preencher conforme a legislação de transporte de produtos perigosos aplicada ao modal + + + + + + + + + + + Quantidade e Tipo de volumes + Preencher conforme a legislação de transporte de produtos perigosos aplicada ao modal + + + + + + + + + + + + + + + + + Manifesto Eletrônico de Documentos Fiscais. Somente para modal Aquaviário (vide regras MOC) + + + + + + Manifesto Eletrônico de Documentos Fiscais + + + + + Indicador de Reentrega + + + + + + + + + + Informações das Unidades de Transporte (Carreta/Reboque/Vagão) + Dispositivo de carga utilizada (Unit Load Device - ULD) significa todo tipo de contêiner de carga, vagão, contêiner de avião, palete de aeronave com rede ou palete de aeronave com rede sobre um iglu. + + + + + Preenchido quando for transporte de produtos classificados pela ONU como perigosos. + + + + + + Número ONU/UN + Ver a legislação de transporte de produtos perigosos aplicadas ao modal + + + + + + + + + + + Nome apropriado para embarque do produto + Ver a legislação de transporte de produtos perigosos aplicada ao modo de transporte + + + + + + + + + + + Classe ou subclasse/divisão, e risco subsidiário/risco secundário + Ver a legislação de transporte de produtos perigosos aplicadas ao modal + + + + + + + + + + + Grupo de Embalagem + Ver a legislação de transporte de produtos perigosos aplicadas ao modal + Preenchimento obrigatório para o modal aéreo. + A legislação para o modal rodoviário e ferroviário não atribui grupo de embalagem para todos os produtos, portanto haverá casos de não preenchimento desse campo. + + + + + + + + + + + Quantidade total por produto + Preencher conforme a legislação de transporte de produtos perigosos aplicada ao modal + + + + + + + + + + + Quantidade e Tipo de volumes + Preencher conforme a legislação de transporte de produtos perigosos aplicada ao modal + + + + + + + + + + + + + + + + + + + + + + + Informações de Seguro da Carga + + + + + + Informações do responsável pelo seguro da carga + + + + + + Responsável pelo seguro + Preencher com: + 1- Emitente do MDF-e; + +22 - Responsável pela contratação do serviço de transporte (contratante) + + +Dados obrigatórios apenas no modal Rodoviário, depois da lei 11.442/07. Para os demais modais esta informação é opcional. + + + + + + + + + + + + + + + Número do CNPJ do responsável pelo seguro + Obrigatório apenas se responsável pelo seguro for (2) responsável pela contratação do transporte - pessoa jurídica + + + + + Número do CPF do responsável pelo seguro + Obrigatório apenas se responsável pelo seguro for (2) responsável pela contratação do transporte - pessoa física + + + + + + + + + Informações da seguradora + + + + + + Nome da Seguradora + + + + + + + + + + + Número do CNPJ da seguradora + Obrigatório apenas se responsável pelo seguro for (2) responsável pela contratação do transporte - pessoa jurídica + + + + + + + + Número da Apólice + Obrigatório pela lei 11.442/07 (RCTRC) + + + + + + + + + + + Número da Averbação + Informar as averbações do seguro + + + + + + + + + + + + + + Produto predominante + Informar a descrição do produto predominante + + + + + + Tipo de Carga + Conforme Resolução ANTT nº. 5.849/2019. + +01-Granel sólido; +02-Granel líquido; +03-Frigorificada; +04-Conteinerizada; +05-Carga Geral; +06-Neogranel; +07-Perigosa (granel sólido); +08-Perigosa (granel líquido); +09-Perigosa (carga frigorificada); +10-Perigosa (conteinerizada); +11-Perigosa (carga geral). + + + + + + + + + + + + + + + + + + + + + Descrição do produto + + + + + + + + + + + GTIN (Global Trade Item Number) do produto, antigo código EAN ou código de barras + + + + + + + + + + + Código NCM + + + + + + + + + + + Informações da carga lotação. Informar somente quando MDF-e for de carga lotação + + + + + + Informações da localização de carregamento do MDF-e de carga lotação + + + + + + CEP onde foi carregado o MDF-e + Informar zeros não significativos + + + + + + + + + + + + Latitude do ponto geográfico onde foi carregado o MDF-e + + + + + Latitude do ponto geográfico onde foi carregado o MDF-e + + + + + + + + + Informações da localização de descarregamento do MDF-e de carga lotação + + + + + + CEP onde foi descarregado o MDF-e + Informar zeros não significativos + + + + + + + + + + + + Latitude do ponto geográfico onde foi descarregado o MDF-e + + + + + Latitude do ponto geográfico onde foi descarregado o MDF-e + + + + + + + + + + + + + + + Totalizadores da carga transportada e seus documentos fiscais + + + + + + Quantidade total de CT-e relacionados no Manifesto + + + + + + + + + + + Quantidade total de NF-e relacionadas no Manifesto + + + + + + + + + + Quantidade total de MDF-e relacionados no Manifesto Aquaviário + + + + + + + + + + Valor total da carga / mercadorias transportadas + + + + + Código da unidade de medida do Peso Bruto da Carga / Mercadorias transportadas + 01 – KG; 02 - TON + + + + + + + + + + + Peso Bruto Total da Carga / Mercadorias transportadas + + + + + + + + Lacres do MDF-e + Preechimento opcional para os modais Rodoviário e Ferroviário + + + + + + número do lacre + + + + + + + + + + + + + + Autorizados para download do XML do DF-e + Informar CNPJ ou CPF. Preencher os zeros não significativos. + + + + + + + CNPJ do autorizado + Informar zeros não significativos + + + + + CPF do autorizado + Informar zeros não significativos + + + + + + + + + Informações Adicionais + + + + + + Informações adicionais de interesse do Fisco + Norma referenciada, informações complementares, etc + + + + + + + + + + + Informações complementares de interesse do Contribuinte + + + + + + + + + + + + + + Informações do Responsável Técnico pela emissão do DF-e + + + + + Grupo de informações do pedido de emissão da Nota Fiscal Fácil + + + + + + Solicitação do pedido de emissão da NFF. + Será preenchido com a totalidade de campos informados no aplicativo emissor serializado. + + + + + + + + + + + + + + Grupo de Informação do Provedor de Assinatura e Autorização + + + + + + CNPJ do Provedor de Assinatura e Autorização + + + + + Assinatura RSA do Emitente para DFe gerados por PAA + + + + + + Assinatura digital padrão RSA + Converter o atributo Id do DFe para array de bytes e assinar com a chave privada do RSA com algoritmo SHA1 gerando um valor no formato base64. + + + + + Chave Publica no padrão XML RSA Key + + + + + + + + + + + + Versão do leiaute + Ex: "3.00" + + + + + Identificador da tag a ser assinada + Informar a chave de acesso do MDF-e e precedida do literal "MDFe" + + + + + + + + + + + + Informações suplementares do MDF-e + + + + + + Texto com o QR-Code para consulta do MDF-e + + + + + + + + + + + + + + + + + + + Tipo Pedido de Autorização Assíncrona de MDF-e + + + + + + + + + + Tipo Retorno do Pedido de Autorização do MDF-e + + + + + Identificação do Ambiente: +1 - Produção +2 - Homologação + + + + + Identificação da UF + + + + + Versão do Aplicativo que recebeu o Arquivo. + + + + + Código do status da mensagem enviada. + + + + + Descrição literal do status do serviço solicitado. + + + + + Dados do Recibo do Arquivo + + + + + + + + Tipo Retorno do Recibo do Pedido de Autorização do MDF-e + + + + + Identificação do Ambiente: +1 - Produção +2 - Homologação + + + + + Identificação da UF + + + + + Versão do Aplicativo que recebeu o Arquivo. + + + + + Código do status da mensagem enviada. + + + + + Descrição literal do status do serviço solicitado. + + + + + Dados do Recibo do Arquivo + + + + + + Número do Recibo + + + + + Data e hora do recebimento, no formato AAAA-MM-DDTHH:MM:SS + + + + + Tempo médio de resposta do serviço (em segundos) dos últimos 5 minutos + + + + + + + + + + + + + + + + Tipo Dados do Endereço + + + + + Logradouro + + + + + + + + + + + Número + + + + + + + + + + + Complemento + + + + + + + + + + + Bairro + + + + + + + + + + + Código do município (utilizar a tabela do IBGE), informar 9999999 para operações com o exterior. + + + + + Nome do município, , informar EXTERIOR para operações com o exterior. + + + + + + + + + + + CEP + Informar zeros não significativos + + + + + + + + + + + Sigla da UF, , informar EX para operações com o exterior. + + + + + Telefone + + + + + + + + + + + Endereço de E-mail + + + + + + + Tipo Dados do Endereço + + + + + Logradouro + + + + + + + + + + + Número + + + + + + + + + + + Complemento + + + + + + + + + + + Bairro + + + + + + + + + + + Código do município (utilizar a tabela do IBGE), informar 9999999 para operações com o exterior. + + + + + Nome do município, informar EXTERIOR para operações com o exterior. + + + + + + + + + + + CEP + Informar os zeros não significativos + + + + + + + + + + + Sigla da UF, informar EX para operações com o exterior. + + + + + Código do país + Utilizar a tabela do BACEN + + + + + + + + + + + Nome do país + + + + + + + + + + + + + Tipo Dados do Endereço + + + + + Logradouro + + + + + + + + + + + Número + + + + + + + + + + + Complemento + + + + + + + + + + + Bairro + + + + + + + + + + + Código do município (utilizar a tabela do IBGE), informar 9999999 para operações com o exterior. + + + + + Nome do município, , informar EXTERIOR para operações com o exterior. + + + + + + + + + + + CEP + + + + + + + + + + + Sigla da UF, , informar EX para operações com o exterior. + + + + + + + Tipo Dados do Endereço + + + + + Logradouro + + + + + + + + + + + Número + + + + + + + + + + + Complemento + + + + + + + + + + + Bairro + + + + + + + + + + + Código do município (utilizar a tabela do IBGE), informar 9999999 para operações com o exterior. + + + + + Nome do município, , informar EXTERIOR para operações com o exterior. + + + + + + + + + + + CEP + + + + + + + + + + + Sigla da UF, , informar EX para operações com o exterior. + + + + + + + Tipo Dados do Endereço + + + + + Logradouro + + + + + + + + + + + Número + + + + + + + + + + + Complemento + + + + + + + + + + + Bairro + + + + + + + + + + + Código do município (utilizar a tabela do IBGE), informar 9999999 para operações com o exterior. + + + + + Nome do município, , informar EXTERIOR para operações com o exterior. + + + + + + + + + + + CEP + + + + + + + + + + + Sigla da UF, , informar EX para operações com o exterior. + + + + + Código do país + + + + + + + + + + + Nome do país + + + + + + + + + + + Telefone + + + + + + + + + + + + + Tipo Dados do Local de Origem ou Destino + + + + + Código do município (utilizar a tabela do IBGE) + + + + + Nome do município + + + + + + + + + + + Sigla da UF + + + + + + + Tipo Dados do Local de Retirada ou Entrega + + + + + + Número do CNPJ + + + + + Número do CPF + + + + + + Razão Social ou Nome + + + + + + + + + + + Logradouro + + + + + + + + + + + Número + + + + + + + + + + + Complemento + + + + + + + + + + + Bairro + + + + + + + + + + + Código do município (utilizar a tabela do IBGE), informar 9999999 para operações com o exterior. + + + + + Nome do município, , informar EXTERIOR para operações com o exterior. + + + + + + + + + + + Sigla da UF, , informar EX para operações com o exterior. + + + + + + + Tipo de Dados das Notas Fiscais Papel e Eletrônica + + + + + Informações da NF-e + + + + + + Chave de acesso da NF-e + + + + + PIN SUFRAMA + PIN atribuído pela SUFRAMA para a operação. + + + + + + + + Informações da NF mod 1 e 1A + + + + + + Informações do Emitente da NF + + + + + + CNPJ do emitente + + + + + + Razão Social ou Nome + + + + + + + + + + + UF do Emitente + Informar 'EX' para operações com o exterior. + + + + + + + + Informações do Destinatário da NF + + + + + + + CNPJ do Destinatário + Informar o CNPJ ou o CPF do destinatário, preenchendo os +zeros não significativos. +Não informar o conteúdo da TAG se a operação for realizada com o Exterior. + + + + + CPF do Destinatário + Informar os zeros não significativos. + + + + + + + Razão Social ou Nome + + + + + + + + + + + UF do Destinatário + Informar 'EX' para operações com o exterior. + + + + + + + + Série + + + + + + + + + + + Número + + + + + + + + + + + Data de Emissão + Formato AAAA-MM-DD + + + + + Valor Total da NF + + + + + PIN SUFRAMA + PIN atribuído pela SUFRAMA para a operação. + + + + + + + + + + Tipo Dados Unidade de Transporte + + + + + Tipo da Unidade de Transporte + 1 - Rodoviário Tração; + +2 - Rodoviário Reboque; + +3 - Navio; + +4 - Balsa; + +5 - Aeronave; + +6 - Vagão; + +7 - Outros + + + + + Identificação da Unidade de Transporte + Informar a identificação conforme o tipo de unidade de transporte. +Por exemplo: para rodoviário tração ou reboque deverá preencher com a placa do veículo. + + + + + + Lacres das Unidades de Transporte + + + + + + Número do lacre + + + + + + + + + + + + + + Informações das Unidades de Carga (Containeres/ULD/Outros) + Dispositivo de carga utilizada (Unit Load Device - ULD) significa todo tipo de contêiner de carga, vagão, contêiner de avião, palete de aeronave com rede ou palete de aeronave com rede sobre um iglu. + + + + + Quantidade rateada (Peso,Volume) + + + + + + + Tipo Dados Unidade de Carga + + + + + Tipo da Unidade de Carga + 1 - Container; + +2 - ULD; + +3 - Pallet; + +4 - Outros; + + + + + Identificação da Unidade de Carga + Informar a identificação da unidade de carga, por exemplo: número do container. + + + + + Lacres das Unidades de Carga + + + + + + Número do lacre + + + + + + + + + + + + + + Quantidade rateada (Peso,Volume) + + + + + + + + + + Tipo Dados da Responsável Técnico + + + + + CNPJ da pessoa jurídica responsável técnica pelo sistema utilizado na emissão do documento fiscal eletrônico + Informar o CNPJ da pessoa jurídica desenvolvedora do sistema utilizado na emissão do documento fiscal eletrônico. + + + + + Nome da pessoa a ser contatada + Informar o nome da pessoa a ser contatada na empresa desenvolvedora do sistema utilizado na emissão do documento fiscal eletrônico. No caso de pessoa física, informar o respectivo nome. + + + + + + + + + + + Email da pessoa jurídica a ser contatada + + + + + Telefone da pessoa jurídica a ser contatada + Preencher com o Código DDD + número do telefone. + + + + + + + + + + + + Identificador do código de segurança do responsável técnico + Identificador do CSRT utilizado para geração do hash + + + + + + + + + + Hash do token do código de segurança do responsável técnico + O hashCSRT é o resultado das funções SHA-1 e base64 do token CSRT fornecido pelo fisco + chave de acesso do DF-e. (Implementação em futura NT) + +Observação: 28 caracteres são representados no schema como 20 bytes do tipo base64Binary + + + + + + + + + + + + + Tipo Protocolo de status resultado do processamento do MDF-e + + + + + Dados do protocolo de status + + + + + + Identificação do Ambiente: +1 - Produção +2 - Homologação + + + + + Versão do Aplicativo que processou a NF-3e + + + + + Chave de acesso do MDF-e + + + + + Data e hora de processamento, no formato AAAA-MM-DDTHH:MM:SS TZD. + + + + + Número do Protocolo de Status do MDF-e + + + + + Digest Value do MDF-e processado. Utilizado para conferir a integridade do MDF-e original. + + + + + Código do status do MDF-e + + + + + + + + Descrição literal do status do MDF-e. + + + + + + + + + Mensagem do Fisco + + + + + + Código do status da mensagem do fisco + + + + + + + + Mensagem do Fisco + + + + + + + + + + + + Tipo processo de emissão do MDF-e + + + + + + + + + Tipo Identificador de controle do envio do lote. Número seqüencial auto-incremental, de controle correspondente ao identificador único do lote enviado. A responsabilidade de gerar e controlar esse número é do próprio contribuinte. + + + + + + + + + Tipo Modal Manifesto + + + + + + + + + + + + Tipo Modelo do Documento + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Tipo Versão do MDF-e - 3.00 + + + + + + + + + Tipo hora + + + + + + + + + Tipo Dados PIN (SUFRAMA) + + + + + + + + + + + Tipo Número do Container + + + + + + + + + + + Tipo Email + + + + + + + + + diff --git a/src/main/resources/schemas/PL_MDFe_300b_NT022024/mdfe_v3.00.xsd b/src/main/resources/schemas/PL_MDFe_300b_NT022024/mdfe_v3.00.xsd new file mode 100644 index 000000000..6b638d8f2 --- /dev/null +++ b/src/main/resources/schemas/PL_MDFe_300b_NT022024/mdfe_v3.00.xsd @@ -0,0 +1,9 @@ + + + + + + Manisfesto Eletrônico de Documentos Fiscais + + + diff --git a/src/main/resources/schemas/PL_MDFe_300b_NT022024/procEventoMDFe_v3.00.xsd b/src/main/resources/schemas/PL_MDFe_300b_NT022024/procEventoMDFe_v3.00.xsd new file mode 100644 index 000000000..bc9d68fd0 --- /dev/null +++ b/src/main/resources/schemas/PL_MDFe_300b_NT022024/procEventoMDFe_v3.00.xsd @@ -0,0 +1,9 @@ + + + + + + Pedido de Registro de Evento de MDF-e processado + + + diff --git a/src/main/resources/schemas/PL_MDFe_300b_NT022024/procMDFe_v3.00.xsd b/src/main/resources/schemas/PL_MDFe_300b_NT022024/procMDFe_v3.00.xsd new file mode 100644 index 000000000..9b0c8f35f --- /dev/null +++ b/src/main/resources/schemas/PL_MDFe_300b_NT022024/procMDFe_v3.00.xsd @@ -0,0 +1,37 @@ + + + + + + + MDF-e processado + + + + + + + + + + IP do transmissor do documento fiscal para o ambiente autorizador + + + + + Porta de origem utilizada na conexão (De 0 a 65535) + + + + + + + + + + Data e Hora da Conexão de Origem + + + + + diff --git a/src/main/resources/schemas/PL_MDFe_300b_NT022024/retConsMDFeNaoEnc_v3.00.xsd b/src/main/resources/schemas/PL_MDFe_300b_NT022024/retConsMDFeNaoEnc_v3.00.xsd new file mode 100644 index 000000000..257dc51c6 --- /dev/null +++ b/src/main/resources/schemas/PL_MDFe_300b_NT022024/retConsMDFeNaoEnc_v3.00.xsd @@ -0,0 +1,9 @@ + + + + + + Schema XML de validação do retorno da consulta MDF-e não encerrados + + + diff --git a/src/main/resources/schemas/PL_MDFe_300b_NT022024/retConsReciMDFe_v3.00.xsd b/src/main/resources/schemas/PL_MDFe_300b_NT022024/retConsReciMDFe_v3.00.xsd new file mode 100644 index 000000000..79fc83808 --- /dev/null +++ b/src/main/resources/schemas/PL_MDFe_300b_NT022024/retConsReciMDFe_v3.00.xsd @@ -0,0 +1,9 @@ + + + + + + Schema XML de validação do retorno do Pedido de Consulta do MDF-e + + + diff --git a/src/main/resources/schemas/PL_MDFe_300b_NT022024/retConsSitMDFe_v3.00.xsd b/src/main/resources/schemas/PL_MDFe_300b_NT022024/retConsSitMDFe_v3.00.xsd new file mode 100644 index 000000000..9a54485b8 --- /dev/null +++ b/src/main/resources/schemas/PL_MDFe_300b_NT022024/retConsSitMDFe_v3.00.xsd @@ -0,0 +1,9 @@ + + + + + + Schema XML de validação do retorno da consulta da situação atual do MDF-e. + + + diff --git a/src/main/resources/schemas/PL_MDFe_300b_NT022024/retConsStatServMDFe_v3.00.xsd b/src/main/resources/schemas/PL_MDFe_300b_NT022024/retConsStatServMDFe_v3.00.xsd new file mode 100644 index 000000000..d6d9ed568 --- /dev/null +++ b/src/main/resources/schemas/PL_MDFe_300b_NT022024/retConsStatServMDFe_v3.00.xsd @@ -0,0 +1,9 @@ + + + + + + Schema XML de validação do Resultado da Consulta do Status do Serviço de MDF-e + + + diff --git a/src/main/resources/schemas/PL_MDFe_300b_NT022024/retDistMDFe_v3.00.xsd b/src/main/resources/schemas/PL_MDFe_300b_NT022024/retDistMDFe_v3.00.xsd new file mode 100644 index 000000000..d9a6d28f2 --- /dev/null +++ b/src/main/resources/schemas/PL_MDFe_300b_NT022024/retDistMDFe_v3.00.xsd @@ -0,0 +1,9 @@ + + + + + + Retorno de pedido de distribuição de MDF-e + + + diff --git a/src/main/resources/schemas/PL_MDFe_300b_NT022024/retEnviMDFe_v3.00.xsd b/src/main/resources/schemas/PL_MDFe_300b_NT022024/retEnviMDFe_v3.00.xsd new file mode 100644 index 000000000..2f90fdb85 --- /dev/null +++ b/src/main/resources/schemas/PL_MDFe_300b_NT022024/retEnviMDFe_v3.00.xsd @@ -0,0 +1,9 @@ + + + + + + Schema XML de validação do retorno do recibo de envio do lote de MDF-e + + + diff --git a/src/main/resources/schemas/PL_MDFe_300b_NT022024/retEventoMDFe_v3.00.xsd b/src/main/resources/schemas/PL_MDFe_300b_NT022024/retEventoMDFe_v3.00.xsd new file mode 100644 index 000000000..a2a86934f --- /dev/null +++ b/src/main/resources/schemas/PL_MDFe_300b_NT022024/retEventoMDFe_v3.00.xsd @@ -0,0 +1,9 @@ + + + + + + Schema XML de validação do retorno Pedido de Cancelamento do MDF-e + + + diff --git a/src/main/resources/schemas/PL_MDFe_300b_NT022024/retMDFeConsultaDFe_v3.00.xsd b/src/main/resources/schemas/PL_MDFe_300b_NT022024/retMDFeConsultaDFe_v3.00.xsd new file mode 100644 index 000000000..42c89f04a --- /dev/null +++ b/src/main/resources/schemas/PL_MDFe_300b_NT022024/retMDFeConsultaDFe_v3.00.xsd @@ -0,0 +1,9 @@ + + + + + + Schema XML de validação do retorno da consulta do MDF-e. + + + diff --git a/src/main/resources/schemas/PL_MDFe_300b_NT022024/retMDFe_v3.00.xsd b/src/main/resources/schemas/PL_MDFe_300b_NT022024/retMDFe_v3.00.xsd new file mode 100644 index 000000000..010eb7f6d --- /dev/null +++ b/src/main/resources/schemas/PL_MDFe_300b_NT022024/retMDFe_v3.00.xsd @@ -0,0 +1,10 @@ + + + + + + + Manisfesto Eletrônico de Documentos Fiscais + + + diff --git a/src/main/resources/schemas/PL_MDFe_300b_NT022024/tiposGeralMDFe_v3.00.xsd b/src/main/resources/schemas/PL_MDFe_300b_NT022024/tiposGeralMDFe_v3.00.xsd new file mode 100644 index 000000000..873ed6f1b --- /dev/null +++ b/src/main/resources/schemas/PL_MDFe_300b_NT022024/tiposGeralMDFe_v3.00.xsd @@ -0,0 +1,656 @@ + + + + + + Data e Hora, formato UTC (AAAA-MM-DDThh:mm:ssTZD, onde TZD = +hh:mm ou -hh:mm) + + + + + + + + + Tipo Código da UF da tabela do IBGE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Tipo Código do Município da tabela do IBGE + + + + + + + + + Tipo Código de orgão (UF da tabela do IBGE + 90 SUFRAMA + 91 RFB + 92 BRId) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Tipo Código da UF da tabela do IBGE + 99 para Exterior + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Tipo Chave do Conhecimento de Transporte Eletrônico + + + + + + + + + + Tipo Chave da Nota Fiscal Eletrônica + + + + + + + + + + Tipo Chave de Manifesto de Documentos Fiscais Eletrônico + + + + + + + + + + Tipo Segundo Codigo Barra + + + + + + + + Tipo Número do Protocolo de Status + + + + + + + + + Tipo Número do Recibo do envio de lote de NF-e + + + + + + + + + Tipo Código da Mensagem enviada + + + + + + + + + Tipo Número do CNPJ + + + + + + + + + Tipo Número do CNPJ tamanho varíavel (3-14) + + + + + + + + + Tipo Número do CNPJ Opcional + + + + + + + + + Tipo Número do CPF + + + + + + + + + Tipo Número do CPF de tamanho variável (3-11) + + + + + + + + + Tipo Decimal com 5 dígitos, sendo 3 de corpo e 2 decimais + + + + + + + + + Tipo Decimal com 6 dígitos, sendo 3 de corpo e 3 decimais + + + + + + + + + Tipo Decimal com 5 dígitos, sendo 3 de corpo e 2 decimais, utilizado em tags opcionais + + + + + + + + + Tipo Decimal com 6 ou 5 dígitos, sendo 3 de corpo e 3 ou 2 decimais + + + + + + + + + Tipo Decimal com 11 dígitos, sendo 8 de corpo e 3 decimais + + + + + + + + + Tipo Decimal com 11 dígitos, sendo 8 de corpo e 3 decimais utilizado em tags opcionais + + + + + + + + + Tipo Decimal com 12 dígitos, sendo 8 de corpo e 4decimais + + + + + + + + + Tipo Decimal com 12 dígitos, sendo 8 de corpo e 4 decimais, utilizado em tags opcionais + + + + + + + + + Tipo Decimal com 15 dígitos, sendo 9 de corpo e 6 decimais, utilizado em tags opcionais + + + + + + + + + Tipo Decimal com 15 dígitos, sendo 11 de corpo e 4 decimais + + + + + + + + + Tipo Decimal com 15 dígitos, sendo 11 de corpo e 4 decimais, utilizado em tags opcionais + + + + + + + + + Tipo Decimal com 15 dígitos, sendo 12 de corpo e 3 decimais + + + + + + + + + Tipo Decimal com 15 dígitos, sendo 12 de corpo e 3 decimais, utilizado em tags opcionais + + + + + + + + + Tipo Decimal com 16 dígitos, sendo 12 de corpo e 4 decimais + + + + + + + + + Tipo Decimal com 16 dígitos, sendo 12 de corpo e 4 decimais, utilizado em tags opcionais + + + + + + + + + Tipo Decimal com 15 dígitos, sendo 13 de corpo e 2 decimais + + + + + + + + + Tipo Decimal com 15 dígitos, sendo 13 de corpo e 2 decimais, utilizado em tags opcionais + + + + + + + + + Tipo Inscrição Estadual do Destinatário + + + + + + + + + Tipo Modelo Manifesto de Documento Fiscal Eletrônico + + + + + + + + + Tipo Inscrição Estadual do Emitente + + + + + + + + + Tipo Número do Documento Fiscal + + + + + + + + + Tipo Série do Documento Fiscal + + + + + + + + + Tipo Sigla da UF + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Tipo Ambiente + + + + + + + + + + Tipo Emitente + + + + + + + + + + + Tipo Transportador + + + + + + + + + + + Tipo Versão do Aplicativo + + + + + + + + + Tipo Motivo + + + + + + + + + Tipo Justificativa + + + + + + + + + Tipo Serviço solicitado + + + + + + Tipo ano + + + + + + + + + Tipo temp médio em segundos + + + + + + + + + Tipo string genérico + + + + + + + + + Tipo data AAAA-MM-DD + + + + + + + + + Coordenada geográfica Latitude + + + + + + + + Coordenada geográfica Longitude + + + + + + + + Tipo da Unidade de Transporte + + + + + + + + + + + + + + + Tipo da Unidade de Carga + + + + + + + + + + + + Tipo número sequencial único do AN + + + + + + + + Tipo IP versão 4 + + + + + + + + + Tipo que representa uma chave publica padrão RSA + + + + + + + + + Tipo Placa + + + + + + + diff --git a/src/main/resources/schemas/PL_MDFe_300b_NT022024/xmldsig-core-schema_v1.01.xsd b/src/main/resources/schemas/PL_MDFe_300b_NT022024/xmldsig-core-schema_v1.01.xsd new file mode 100644 index 000000000..76b74b38d --- /dev/null +++ b/src/main/resources/schemas/PL_MDFe_300b_NT022024/xmldsig-core-schema_v1.01.xsd @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +