- 6. Validação de Schema XML
6.2. Validar Schema XML - 6.1. O que é um Schema XML?
« Anterior - 6.3. Como sanear um XML com falha de Schema XML?
Próximo »
6.2. Validar Schema XML
Validação de Schema XML
Assinatura
int ValidaXML(string XML, string Schema, string pastaSchemas, string nameSpaceSchemas, out string msgResultado, out long qtdeErros, out string erroXML)
Descrição:
Funcionalidade para realizar a validação de Schema XML em um documento XML.
Parâmetros:
| nome | tipo | fluxo | descrição |
|---|---|---|---|
| XML | string | entrada | informar uma string com o XML que será validada |
| Schema | string | entrada | informar o nome do arquivo schema XML com o caminho completo de localização que será utilizado na validação Exemplo: "C:\distDFe\SchemasNFe\nfe_v4.00.xsd" |
| pastaSchema | string | entrada | informar a pasta de localização do(s) arquivo(s) schema XML com o caminho completo de localização que estão referenciados em include e/ou import do schema XML principal, normalmente estão localizados na mesma pasta do arquivo schema XML principal. Exemplo: "C:\distDFe\SchemasNFe\" |
| nameSpaceSchemas | string | entrada | informar o name space do schema XML principal. Exemplo: "http://www.portalfiscal.inf.br/nfe" |
| 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 encontrados |
Exemplo de Valores a serem informados nos parâmetros Schema, pastaSchema e nameSpaceSchemas
DF-e Schema pastaSchema nameSpaceSchemas NF-e C:\APP\distDFe\SchemasNFe\nfe_v4.00.xsd C:\APP\distDFe\SchemasNFe\ http://www.portalfiscal.inf.br/nfe procNFe C:\APP\distDFe\SchemasNFe\procNFe_v4.00.xsd C:\APP\distDFe\SchemasNFe\ http://www.portalfiscal.inf.br/nfe CT-e C:\APP\distDFe\SchemasCTe\cte_v4.00.xsd C:\APP\distDFe\SchemasCTe\ http://www.portalfiscal.inf.br/cte procCTe C:\APP\distDFe\SchemasCTe\procCTe_v4.00.xsd C:\APP\distCTe\SchemasCTe\ http://www.portalfiscal.inf.br/cte CT-e OS C:\APP\distDFe\SchemasCTe\cteOS_v4.00.xsd C:\APP\distDFe\SchemasCTe\ http://www.portalfiscal.inf.br/cte procCTeOS C:\APP\distDFe\SchemasCTe\procCTeOS_v4.00.xsd C:\APP\distCTe\SchemasCTe\ http://www.portalfiscal.inf.br/cte MDF-e C:\APP\distDFe\SchemasMDFe\mdfe_v3.00.xsd C:\APP\distDFe\SchemasMDFe\ http://www.portalfiscal.inf.br/mdfe procMDFe C:\APP\distDFe\SchemasMDFe\procMDFe_v3.00.xsd C:\APP\distMDFe\SchemasMDFe\ http://www.portalfiscal.inf.br/mdfe Obs.: Nos exemplos foram informados as pastas SchemaNFe, SchemaCTe e SchemaMDFe que existem na pasta distDFe da DLL.
Retorno:
O código numérico devolvido no parâmetro msgResultado tem os seguintes significados:
| código | Mensagem |
|---|---|
| 5501 | Mensagem XML é válida |
| 5502 | Erro: O parâmetro Schema deve ser informado |
| 5503 | Erro: XML mal formado [detalhe do erro] |
| 5504 | Erro: Arquivo Schemal XML [valor recebido pela DLL] não localizado |
| 5505 | Erro: XML não atende a especificação do Schema XML, analise a lista de erros: [detalhe do erro] |
| 5506 | Erro: A validação de um XML sem assinatura causa um erro de falta de assinatura que pode ser desprezado [detalhe do erro] |
| 5507 | Erro: O XML não possui nenhuma tag com o namespace informado no parâmetro nameSpaceXSD: [valor recebido pela DLL] |
| 5508 | Erro: XML com caracteres de identificação de codificação UTF-8 no início do arquivo |
| 5509 | Erro: XML com caracteres de identificação de codificação UTF-16 (BE) no início do arquivo |
| 5510 | Erro: XML com caracteres de identificação de codificação UTF-16 (LE) no início do arquivo |
| 5511 | Erro: XML com caracteres de identificação de codificação UTF-32 (BE) no início do arquivo |
| 5512 | Erro: XML com caracteres de identificação de codificação UTF-32 (LE) no início do arquivo |
| 5513 | Erro: XML com caracteres de identificação de codificação UTF-7 no início do arquivo |
| 5514 | Erro: O parâmetro pastaXSD deve ser informado. |
| 5515 | Erro: O parâmetro pastaXSD:[valor recebido pela DLL] informado é inválido, Erro do Windows: [detalhe do erro] |
| 5516 | Erro: A pasta informada no parâmetro pastaXSD:[valor recebido pela DLL] inexistente. |
| 5517 | Erro: O parâmetro nameSpaceXSD deve ser informado. |
| 5518 | Erro: O parâmetro nameSpaceXSD informado:[valor recebido pela DLL] é inválido. |
Histórico de atualização:
- 2026-10-12 - v1.00 - versão inicial.
Exemplos de uso:
Visual Basic 6.0
' ' declaração das variáveis que serão utilizadas na passagem de parâmetros da DLL ' 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 Schema As String ' nome do arquivo schema XML com o caminho completo Dim pastaSchema As String ' caminho completo da pasta de localização dos arquivos include/import existentes no schema XML Dim nameSpaceSchema As String ' namespace do schema XML principal 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 Schema = ".\distDFe\SchemasCTe\cte_v4.00.xsd"; pastaSchemas = ".\distDFe\SchemasCTe"; nameSpaceSchemas = "http://www.portalfiscal.inf.br/cte"; 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 objdistDFe As Object Set objdistDFe = CreateObject("distDFe.Util") ' Screen.MousePointer = vbHourglass ' ponteiro ampulheta ' ' resultado = objdistDFe.ValidaXML(XML, Schema, pastaSchemas, nameSpaceSchemas, msgResultado, qtdeErros, erroXML) ' ' Screen.MousePointer = vbDefault ' ponteiro normal ' ' tratar retorno ' If (resultado = 5501) 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 objdistDFe = Nothing End Sub
- 6.2. Validar Schema XML
6. Validação de Schema XML - « Anterior
6.1. O que é um Schema XML? - Próximo »
6.3. Como sanear um XML com falha de Schema XML?
