Ir para conteúdo
  • Cadastre-se

dev botao

Erro na Validação do XML


ricardolopes
  • Este tópico foi criado há 3193 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Olá boa tarde.

Estou testando o sistema após a atualização para trunk2 e estou tendo erro na validação do xml, tanto pelo menu aplicativo quanto pelo demo, segue anexo o xml e a mensagem, será que pode ser relacionado a alguma alteração de schemas? estou utilizando os schemas do ACBrMonitorPlus, utilizo delphi XE2

Grato

35150607442575000103580010000000011000000016-mdfe.xml

erro.png

Ricardo Lopes

TECNOSOFT - Solução em Informática

www.tecnosoft.com.br

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Boa tarde

é necessário efetuar algumas validações pois pelo que sei o Italo converteu mas só está testando não usou em produção ainda!

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Ricardo,

No caso do MDF-e temos que validar os dados do Modal e depois os dados do MDF-e.

O método Validar realiza essas duas validações mas caso ocorra um erro não temos como saber onde exatamente o erro.

Fiz uma alteração a fim de apresentar mensagens de erro de validação separadas, para o Modal e para o MDF-e.

Por favor atualize os fontes e teste novamente.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Italo, segue:
Em ACBrMDFe, na função

function TACBrMDFe.GerarNomeArqSchemaModal(const AXML: String;
  VersaoServico: Double): String;
begin
//  if EstaVazio(VersaoServico) then
  if VersaoServico = 0.0 then
    Result := ''
  else
//    Result := PathWithDelim( Configuracoes.Arquivos.PathSchemas ) +
//              SchemaMDFeToStr(IdentificaSchemaModal(AXML)) + '_v' +
//              FormatFloat('0.00', VersaoServico) + '.xsd';
    Result := PathWithDelim( Configuracoes.Arquivos.PathSchemas ) +
              SchemaMDFeToStr(IdentificaSchemaModal(AXML)) + '_v' +
              FloatToString(VersaoServico, '.', '0.00') + '.xsd';
end;
Troquei porque estava retornando 1,00 na versão para poder retornar 1.00 

Em ACBrMDFeManifestos, na validação de AXMLModal, fiz a seguinte alteração para corrigir o erro de validação no modal.

  case TACBrMDFe(TManifestos(Collection).ACBrMDFe).IdentificaSchemaModal(AXML) of
   schmdfeModalAereo: begin
                        AXMLModal := '<aereo xmlns="' + ACBRMDFE_NAMESPACE + '">' +
                                        Trim(RetornarConteudoEntre(AXML, '<aero>', '</aero>')) +
                                     '</aereo>';
                      end;
   schmdfeModalAquaviario: begin
                             AXMLModal := '<aquav xmlns="' + ACBRMDFE_NAMESPACE + '">' +
                                            Trim(RetornarConteudoEntre(AXML, '<aquav>', '</aquav>')) +
                                          '</aquav>';
                           end;
   schmdfeModalFerroviario: begin
                              AXMLModal := '<ferrov xmlns="' + ACBRMDFE_NAMESPACE + '">' +
                                             Trim(RetornarConteudoEntre(AXML, '<ferrov>', '</ferrov>')) +
                                           '</ferrov>';
                            end;
   schmdfeModalRodoviario: begin
                             AXMLModal := '<rodo xmlns="' + ACBRMDFE_NAMESPACE + '">'+
                                             Trim(RetornarConteudoEntre(AXML, '<rodo>', '</rodo>')) +
                                          '</rodo>';

                           end;
  end;

Agora não consegui resolver o erro de validação no MDFE, debugando aqui me parece que o nome do schema esta errado, mas não consegui encontrar onde e como ele busca isso, poderia confirmar por favor.  
NomeServico    'MDFeRetRecepcao'
NomeSchema    'consReciMDFe'
MsgErro    'The element ''{http://www.portalfiscal.inf.br/mdfe}MDFe'' is used but not declared in the DTD/Schema.'#$D#$A

 

Editado por ricardolopes

Ricardo Lopes

TECNOSOFT - Solução em Informática

www.tecnosoft.com.br

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Ricardo,

Muito obrigado pela colaboração, as suas alterações já estão disponíveis, vou agora verificar o nome dos schemas.

Fiz mais algumas alterações, por favor atualize os fontes e teste novamente.

Preciso saber se o erro esta ocorrendo na validação do modal ou nos dados do manifesto.

Editado por Italo Jurisato Junior
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Boa tarde Italo, ele passa pela validação do Modal sem apresentar erros, e na segunda validação ele apresenta o " The element ''{http://www.portalfiscal.inf.br/mdfe}MDFe'' is used but not declared in the DTD/Schema." 

Aqui ele esta indo buscar o arquivo ConsReciMDFE_v1.00.xsd para validar o manifesto (pelo menos foi o que eu entendi) e ai gera erro na validação, fiz com que buscasse o arquivo mdfe_v1.00.xsd com esse arquivo ele passa também pela validação do Manifesto, nem te mando essa alteração porque eu fixei direto um valor no fonte sem fazer nenhuma verificação (só pra testar) será que pode ser algum configuração aqui para ele estar buscando o arquivo  ConsReciMDFE_v1.00.xsd ?

Grato

Editado por ricardolopes

Ricardo Lopes

TECNOSOFT - Solução em Informática

www.tecnosoft.com.br

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa noite Ricardo,

Acredito ter encontrado o erro, por favor atualize os fontes e teste novamente.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Ricardo,

Configure o componente para salvar os arquivos soap.

Em configurações no grupo WebServices temos a propriedade salvar, atribua o valor True será salvo o arquivo de envio e de retorno com a palavra soap no nome.

Post como anexo o arquivo de envio e de retorno, para que possamos avaliar, pois pelo que entendi na mensagem de erro o problema esta no Soap Action.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 3193 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...