XML / XPath / XSD

validação XSDencontre o que não corresponde ao esquema

Execute pelo botão ou com Ctrl/Cmd+Enter. O exemplo usa um esquema principal e um arquivo separado de tipos.

validação XSD

Entrada XML

XSD atual

XML e esquemas são processados neste navegador, sem envio dos documentos para validação.

Use caminhos relativos ASCII, como types/common.xsd. A referência parte do esquema que a contém; URLs e caminhos fora da raiz virtual não são aceitos.

Execução manual: 10 segundos com carregamento. XML e cada esquema: 1.000.000 de caracteres; total dos esquemas: 2.000.000 e 20 arquivos; profundidade 100.

Resultado desatualizado. Valide novamente para exportar.

A validação XSD ajuda a separar um XML que pode ser lido de um documento que atende ao contrato de dados. Uma quantidade escrita como texto não quebra a marcação, mas pode descumprir a exigência de um número inteiro.

Para validar XML pelo Schema XSD, informe o arquivo de entrada e suas dependências. Este validador XML compila as declarações reais; um erro na validação de XSD não é tratado como autorização para ignorar parte das regras.

Por que usar a validação XSD?

Confira o conjunto de esquemas

Na validação XSD, um tipo declarado em types.xsd pode restringir um campo do documento principal. xs:include e xs:import usam os arquivos locais que você fornece; uma dependência ausente é um erro, não uma regra dispensada.

Um esquema principal e duas dependências locais ligados à validação de um documento XML.

Saiba onde investigar

Um valor incompatível aponta para os dados XML, enquanto um tipo não declarado pode exigir ajustar o XSD. Quando disponíveis, arquivo e linha levam à entrada certa, acompanhados da mensagem original da restrição.

Um valor XML marcado conectado à linha de origem e ao relatório de erro.

Três detalhes para uma conferência repetível

01

Escolha o esquema principal

O caminho inicial é main.xsd. As dicas xsi:schemaLocation no XML não escolhem nem baixam outro esquema. Use o arquivo que declara o elemento raiz e reúna os arquivos referenciados.

02

Ajuste a relação entre caminhos

orders/main.xsd pode usar ../types.xsd desde que não saia da raiz virtual. Depois de ler arquivos UTF-8, edite os caminhos para reproduzir suas pastas. Caminhos normalizados duplicados não são aceitos.

03

Execute depois de editar

Alterar conteúdo ou caminho cancela o processamento atual e desatualiza o relatório. Use Ctrl/Cmd+Enter para repetir. Trocar somente o esquema visível no editor não muda os dados da solicitação.

Tipos, declarações e evidências

Compilação antes dos dados

O libxml2 WASM compila XSD 1.0 antes de verificar a instância. Tipos não declarados ou estruturas incorretas do esquema são identificados em uma fase diferente das violações encontradas no XML.

Restrições avaliadas pelo mecanismo

O exemplo limita quantity a um inteiro de 1 a 100. Elementos obrigatórios, quantidade de ocorrências, ordem de sequence e namespaces são verificados pelo mecanismo, não apenas por uma lista de nomes de tags.

Relatório JSON do resultado

Copie ou baixe um resultado válido ou inválido concluído. O relatório registra fase, mecanismo e diagnósticos capturados. Uma coluna não fornecida permanece desconhecida; não é apresentada como se o erro estivesse comprovadamente na coluna um.

O que entra na verificação

Versões compatíveis
São aceitos XML 1.0 e XSD 1.0, com UTF-8 quando houver declaração de codificação. Recursos XSD 1.1 como assert, alternative e override são rejeitados. O atributo version comum de schema é uma versão da aplicação e não seleciona outro mecanismo.
Referências explícitas e locais
Cada include, import ou redefine exige schemaLocation. Caminhos usam letras e números ASCII, ponto, sublinhado, hífen e barra. URLs, escapes percentuais, caminhos absolutos, saídas da raiz, xml:base e DOCTYPE não são permitidos.
Limites de processamento
XML e cada XSD aceitam 1.000.000 de caracteres de string JavaScript. O conjunto de esquemas aceita 2.000.000 de caracteres e 20 arquivos, incluindo o principal. Profundidade máxima 100; o Worker é encerrado em 10 segundos, contando a inicialização. Não são limites em megabytes.
Diagnósticos podem ser abreviados
São retidos até 200 diagnósticos e 4.000 caracteres por mensagem, com sinalização quando houver corte. A lista mostra 50 por vez. Falhas de execução e resultados antigos não podem ser exportados; o analisador pode parar antes de identificar todos os problemas.
Não autoriza documentos fiscais
A ferramenta não aplica Schematron, verifica assinaturas, corrige XML nem gera esquemas. Passar pelo XSD não garante aprovação da SEFAZ ou de outro receptor: regras de negócio, versões e o documento efetivamente transmitido também importam.
Substituição com revisão
Exemplos, limpeza, leitura de arquivos e remoção de dependências mostram uma prévia antes de aplicar. Desfazer recupera uma vez as entradas e o relatório anterior. A edição de texto é direta e o trabalho não permanece após recarregar a página.

Perguntas sobre validação XSD

Qual é a diferença entre o documento XML e seu arquivo XSD?

O XML contém os dados; o XSD descreve elementos, tipos, ocorrências e outras restrições esperadas. Ser XML bem-formado não demonstra que todos esses requisitos foram atendidos. Para conferir, é preciso usar o esquema correto e suas dependências.

Como resolver a mensagem de que o elemento Signature não foi declarado?

Confira se o esquema que declara Signature foi fornecido e importado com o namespace e o caminho corretos. Reconhecer a estrutura de uma assinatura não comprova sua validade criptográfica. Esta página não verifica certificados nem assinaturas digitais.

Por que xs:any pode causar um erro na compilação do esquema?

xs:any precisa estar numa posição permitida e não funciona como um recipiente genérico para declarações de filhos. Se você pretende definir uma sequência conhecida, use a estrutura adequada. Um erro nessa organização aparece durante a compilação do esquema.

Uma validação local aprovada impede a rejeição 215 da SEFAZ?

Não. Compare a versão dos XSDs, o XML realmente enviado e as regras adicionais do destinatário. Uma aprovação local só vale para o conjunto testado; uma rejeição da SEFAZ deve ser investigada também no sistema emissor.

Como conferir se o XML é válido com PHP?

Em PHP, DOMDocument::schemaValidate permite verificar um XML contra um XSD; capture os erros do libxml para analisar falhas. Nesta página você realiza a tarefa interativamente com arquivos locais, sem executar PHP nem configurar um serviço de validação.

Encontrou um diagnóstico inesperado?

Reproduza o problema com os mesmos arquivos

Use a validação XSD com o documento, o esquema principal e os caminhos de dependência preservados. Salve o relatório junto desse conjunto para não confundir uma versão testada com outra editada depois.