- 11.3. Validação de Schema XML
11.3.2. Validar Schema XML - 11.3.1. O que é um Schema XML?
« Anterior - 11.3.3. Como sanear um XML com falha de Schema XML?
Próximo »
11.3.2. Validar Schema XML
Validação de Schema XML
Assinatura
int ValidaXML(string XML, long tipoXML, out string msgResultado, out long qtdeErros, out string erroXML)
Descrição:
Funcionalidade para realizar a validação de Schema XML em um documento XML.
É necessário informar qual documento XML que se prentende validar no parâmetro tipoXML.
Parâmetros:
nome | tipo | fluxo | descrição |
---|---|---|---|
XML | string | entrada | informar uma string com o XML que será validada |
tipoXML | long | entrada | informar o código do tipoXML do schema XML que será utilizado na validação |
msgResultado | string | saída | retorna a literal com resultado da chamada da DLL |
qtdeErros | long | saída | retorna a quantidade de erros encontrados |
erroXML | string | saída | retorna um texto com o erros de validações encontados |
Valores do tipoXML
- 0 - cabeçalho (cabecMsg_v1.02)
- 1 - CT-e assinado (CTe_v1.02.xsd)
- 2 - Envio de Lote de CT-e (enviCTe_v1.02.xsd)
- 3 - Retorno Lote de CT-e (retEnviCTe_v1.02.xsd)
- 4 - Busca Resultado de CT-e (consReciCTe_v1.01.xsd)
- 5 - Retorno de Resultado de CT-e (retConsReciCTe_v1.01.xd)
- 6 - Cancelamento de CT-e (cancCTe_v1.01.xsd)
- 7 - Retorno de Cancelamento de CT-e (retCancCTe_v1.01.xsd)
- 8 - Inutilizacao de Numeração de CT-e (inutCTe_v1.01.xsd)
- 9 - Retorno de Inutilização de CT-e (retInutCTe_v1.01.xsd)
- 10 - Consulta Situação de CT-e (consSitCTe_v1.01.xsd)
- 11 - Retorno de Consulta Situação de CT-e (retConsSitCTe_v1.01.xsd)
- 12 - Consulta Status de Serviço (consStatServ_v1.01.xsd)
- 13 - Retorno de Consulta Status de Serviço (retConsStatServ_v1.01.xsd)
- 14 - Consulta Cadastro de Contribuintes (consCad_v1.01.xsd)
- 15 - Retorno da Consulta Cadastro de Contribuintes (retConsCad_v1.01.xsd)
- 16 - Proc CT-e (procCTe_v1.02.xsd)
- 17 - Proc CancCT-e (procCancCTe_v1.01.xsd)
- 18 - Proc InutCTe (procInutCTe_v1.01.xsd)
- 19 - CT-e assinado (CTe_v1.03.xsd)
- 20 - Envio de Lote de CT-e (enviCTe_v1.03.xsd)
- 21 - Retorno Lote de CT-e (retEnviCTe_v1.03.xsd)
- 22 - Busca Resultado de CT-e (consReciCTe_v1.03.xsd)
- 23 - Retorno de Resultado de CT-e (retConsReciCTe_v1.03.xd)
- 24 - Cancelamento de CT-e (cancCTe_v1.03.xsd)
- 25 - Retorno de Cancelamento de CT-e (retCancCTe_v1.03.xsd)
- 26 - Inutilizacao de Numeração de CT-e (inutCTe_v1.03.xsd)
- 27 - Retorno de Inutilização de CT-e (retInutCTe_v1.03.xsd)
- 28 - Consulta Situação de CT-e (consSitCTe_v1.03.xsd)
- 29 - Retorno de Consulta Situação de CT-e (retConsSitCTe_v1.03.xsd)
- 30 - Consulta Status de Serviço (consStatServ_v1.03.xsd)
- 31 - Retorno de Consulta Status de Serviço (retConsStatServ_v1.03.xsd)
- 32 - Proc CT-e (procCTe_v1.03.xsd)
- 33 - Proc CancCT-e (procCancCTe_v1.03.xsd)
- 34 - Proc InutCTe (procInutCTe_v1.03.xsd)
- 35 - CT-e assinado (CTe_v1.04.xsd)
- 36 - Envio de Lote de CT-e (enviCTe_v1.04.xsd)
- 37 - Retorno Lote de CT-e (retEnviCTe_v1.04.xsd)
- 38 - Busca Resultado de CT-e (consReciCTe_v1.04.xsd)
- 39 - Retorno de Resultado de CT-e (retConsReciCTe_v1.04.xd)
- 40 - Cancelamento de CT-e (cancCTe_v1.04.xsd)
- 41 - Retorno de Cancelamento de CT-e (retCancCTe_v1.04.xsd)
- 42 - Inutilizacao de Numeração de CT-e (inutCTe_v1.04.xsd)
- 43 - Retorno de Inutilização de CT-e (retInutCTe_v1.04.xsd)
- 44 - Consulta Situação de CT-e (consSitCTe_v1.04.xsd)
- 45 - Retorno de Consulta Situação de CT-e (retConsSitCTe_v1.04.xsd)
- 46 - Consulta Status de Serviço (consStatServ_v1.04.xsd)
- 47 - Retorno de Consulta Status de Serviço (retConsStatServ_v1.04.xsd)
- 48 - Proc CT-e (procCTe_v1.04.xsd)
- 49 - Proc CancCT-e (procCancCTe_v1.04.xsd)
- 50 - Proc InutCTe (procInutCTe_v1.04.xsd)
- 51 - EventoCTe (eventoCTe_v1.04.xsd)
- 52 - CT-e assinado (CTe_v2.00.xsd)
- 53 - Envio de Lote de CT-e (enviCTe_v2.00.xsd)
- 54 - Retorno Lote de CT-e (retEnviCTe_v2.00.xsd)
- 55 - Busca Resultado de CT-e (consReciCTe_v2.00.xsd)
- 56 - Retorno de Resultado de CT-e (retConsReciCTe_v2.00.xd)
- 57 - Inutilizacao de Numeração de CT-e (inutCTe_v2.00.xsd)
- 58 - Retorno de Inutilização de CT-e (retInutCTe_v2.00.xsd)
- 59 - Consulta Situação de CT-e (consSitCTe_v2.00.xsd)
- 60 - Retorno de Consulta Situação de CT-e (retConsSitCTe_v2.00.xsd)
- 61 - Consulta Status de Serviço (consStatServ_v2.00.xsd)
- 62 - Retorno de Consulta Status de Serviço (retConsStatServ_v2.00.xsd)
- 63 - Proc CT-e (procCTe_v2.00.xsd)
- 64 - Proc InutCTe (procInutCTe_v2.00.xsd)
- 65 - EventoCTe (eventoCTe_v2.00.xsd)
- 66 - Proc EventoCTe (procEventoCTe_v2.00.xsd)
- 67 - CT-e assinado (cte_v3.00.xsd)
- 68 - Envio de Lote de CT-e (enviCTe_v3.00.xsd)
- 69 - Retorno Lote de CT-e (retEnviCTe_v3.00.xsd)
- 70 - Busca Resultado de CT-e (consReciCTe_v3.00.xsd)
- 71 - Retorno de Resultado de CT-e (retConsReciCTe_v3.00.xd)
- 72 - Inutilizacao de Numeração de CT-e (inutCTe_v3.00.xsd)
- 73 - Retorno de Inutilização de CT-e (retInutCTe_v3.00.xsd)
- 74 - Consulta Situação de CT-e (consSitCTe_v3.00.xsd)
- 75 - Retorno de Consulta Situação de CT-e (retConsSitCTe_v3.00.xsd)
- 76 - Consulta Status de Serviço (consStatServ_v3.00.xsd)
- 77 - Retorno de Consulta Status de Serviço (retConsStatServ_v3.00.xsd)
- 78 - Proc CT-e (procCTe_v3.00.xsd)
- 79 - Proc InutCTe (procInutCTe_v3.00.xsd)
- 80 - EventoCTe (eventoCTe_v3.00.xsd)
- 81 - Proc EventoCTe (procEventoCTe_v3.00.xsd)
- 82 - CT-e Outros Serviços (cteOS_v3.00.xsd)
- 83 - Proc CT-e Outros Servicos (procCTeOs_v3.00.xsd)
- 84 - GTV-e (GTVe_v3.00.xsd)
- 85 - procGTV-e (procGTVe_v3.00.xsd)
- 86 - CT-e assinado (cte_v4.00.xsd)
- 87 - Consulta Situação de CT-e (consSitCTe_v4.00.xsd)
- 88 - Retorno de Consulta Situação de CT-e (retConsSitCTe_v4.00.xsd)
- 89 - Consulta Status de Serviço (consStatServ_v4.00.xsd)
- 90 - Retorno de Consulta Status de Serviço (retConsStatServ_v4.00.xsd)
- 91 - Proc CT-e (procCTe_v4.00.xsd)
- 92 - EventoCTe (eventoCTe_v4.00.xsd)
- 93 - Proc EventoCTe (procEventoCTe_v4.00.xsd)
- 94 - CT-e Outros Serviços (cteOS_v4.00.xsd)
- 95 - Proc CT-e Outros Servicos (procCTeOs_v4.00.xsd)
- 96 - GTV-e (GTVe_v4.00.xsd)
- 97 - procGTV-e (procGTVe_v4.00.xsd)
- 98 - CT-e Simplificado (cteSimp_v4.00.xsd)
- 99 - Proc CT-e Simplificado (procCTeSimp_v4.00.xsd)
Retorno:
O código numérico devolvido no parâmetro msgResultado tem os seguintes significados:
código | Mensagem |
---|---|
0 | OK - mensagem XML válida |
1 | Erro: tipoXML: [tipoXMLinválido] (fora do intervalor 0-99) |
2 | Erro: arquivo de Schema XML [nome do arquivo] não localizado |
3 | Erro: XML mal formado |
4 | Erro: XML não atende Schema XML |
5 | Erro: não previsto |
6 | Erro: XML com caracteres de identificação de codificação UTF-8/16/32/7 |
Histórico de atualização:
- Versão inicial.
- 2020-09-01 - Atualização de tipos XML do GTV-e
- 2023-03-20 - Atualização de tipos XML da versão 4.00
- 2024-09-16 - Atualização CT-e Simplificado
Exemplos de uso:
Visual Basic 6.0
' ' declaração das variáveis que serão utilizadas na passagem de parâmetros da DLL ' ' ********IMPORTANTE O tipoXML da versão 1.04 é 35 *************** ' Dim XML As String ' informar uma string com o XML que será validada. Dim msgResultado As String ' retorna a literal do resultado da chamada do WS Dim erroXML As String ' retorna um texto com o erros de validações encontados Dim tipoXML As Long ' informar o código do ***tipoXML*** do schema XML que será utilizado na validação Dim qtdeErros As Long ' retorna a literal com resultado da chamada da DLL Dim resultado As Long ' código do resultado da chamada da DLL ' ' carregar arquivo XML na string ' Dim nomeArquivo As String ' nome do arquivo que será validado ' nomeArquivo = "exemplo.xml" ' ' Carrega o conteúdo do nome do arquivo em XML ' Open nomeArquivo For Input As #1 XML= Input$(LOF(1), #1) Close #1 ' ********IMPORTANTE O tipoXML da versão 1.04 é 35 *************** tipoXML = 35 ' validar CT-e (opção fixa para validar CT-e layout 1.04 neste exemplo) qtdeErros = 0 ' quantidade de erros, se o XML não estiver assinado vai ocorrer um erro erroXML = "" ' retorna um texto com o erros de validações encontados msgResultado = "" ' retorna a literal com resultado da chamada da DLL resultado = 0 ' código do resultado da chamada da DLL ' ' referenciando a DLL em late binding ' não é necessário fazer o reference da DLL ' o intelisense não funciona ' Dim objCTeUtil As Object Set objCTeUtil = CreateObject("CTe_Util.Util") ' Screen.MousePointer = vbHourglass ' ponteiro ampulheta ' ' resultado = objCTeUtil.ValidaXML(XML, tipoXML, msgResultado, qtdeErros, erroXML) ' ' Screen.MousePointer = vbDefault ' ponteiro normal ' ' tratar retorno ' If (resultado = 0) Then MsgBox msgResultado, vbInformation, "Informação" Else MsgBox "Processo de validação do XML falhou..." & vbCrLf & msgResultado, vbExclamation, "Atenção" End If ' ' liberar DLL ' Set objCTeUtil = Nothing End Sub
- 11.3.2. Validar Schema XML
11.3. Validação de Schema XML - « Anterior
11.3.1. O que é um Schema XML? - Próximo »
11.3.3. Como sanear um XML com falha de Schema XML?