tools.poderoso.io
← poderoso.io

Validador de XML com XSD

·valida XML contra um ou mais schemas XSD
// schemas xsd
0 arquivo(s)
nenhum schema carregado
ctrl/cmd + enter
// resultado
// o resultado da validação aparecerá aqui

O validador de XSD confere um documento XML contra um ou mais schemas XSD e lista os erros encontrados, com a linha de cada um. É a checagem que responde se o documento obedece ao contrato, não apenas se ele está bem formado.

Boa formação e validade são coisas diferentes

Um XML bem formado tem tags que abrem e fecham na ordem certa, conforme a especificação do XML. Um XML válido, além disso, obedece a um esquema: os elementos certos, na ordem certa, com os tipos certos, conforme o XML Schema. Sem schema carregado a ferramenta verifica apenas a boa formação e diz isso explicitamente no resultado.

Você pode carregar vários schemas de uma vez, o que é necessário quando o XSD principal usa import ou include para puxar outros. O limite é de cem arquivos por sessão.

Validação de verdade, no navegador

A validação usa a libxml2 compilada para WebAssembly, o mesmo motor por trás do xmllint que você usaria no terminal. Isso significa validação real de XSD 1.0, não uma aproximação por expressão regular, rodando localmente.

A consequência prática é que o resultado bate com o que o servidor de destino vai dizer, porque muita integração corporativa valida com a mesma libxml. E o documento não precisa sair da sua máquina para ser conferido, o que importa quando ele tem dado fiscal ou pessoal.

Por que XSD 1.0 e não 1.1

A versão 1.1 existe desde 2012 e traz assertions e tipos condicionais, mas quase nenhum motor a implementou por completo, a libxml2 incluída. Na prática, contratos de integração no Brasil, NF-e e schemas bancários entre eles, são escritos em 1.0 justamente porque é o que todo mundo consegue validar.

Perguntas frequentes

Preciso enviar o XML para um servidor?

Não. O validador roda inteiramente no navegador via WebAssembly. Documento e schemas são lidos localmente, o que importa quando o XML tem dado fiscal ou pessoal.

Posso carregar mais de um schema?

Sim, até cem arquivos. É o cenário normal quando o XSD principal usa import ou include para puxar outros schemas.

Ele valida XSD 1.1?

Não. A validação cobre XSD 1.0, que é o que a libxml2 implementa e o que praticamente todos os contratos de integração usam na prática, inclusive os da NF-e.

O resultado é o mesmo do xmllint?

É o mesmo motor, a libxml2, compilada para WebAssembly. As mensagens de erro e o veredito são os que o xmllint daria na linha de comando.

Referências