Validador XSD

Um documento XML bem formado ainda pode estar errado: faltando um elemento obrigatório, usando o tipo de dado errado para um atributo ou tendo elementos na ordem errada. XSD (Definição de Esquema XML) descreve exatamente como o documento deve ser. Este validador combina seu XML com seu XSD, executa o validador de Esquema XML do W3C e lista cada violação com linha, elemento e a restrição específica que foi quebrada.

Como validar XML contra XSD

  1. 1

    Cole ambos os arquivos

    XML de um lado, esquema XSD do outro. Vários esquemas podem ser colados juntos.

  2. 2

    Executar validação

    O analisador combina elementos, atributos e tipos com declarações de esquema.

  3. 3

    Revisar erros

    Cada violação mostra o caminho do elemento, a restrição esperada e o valor real.

  4. 4

    Corrigir e revalidar

    Edite no local e execute novamente sem recarregar.

O que o XSD verifica

  • Nomes de elementos e cardinalidade: obrigatório, opcional, ocorrências mínimas/máximas.
  • Ordem dos elementos: sequência, escolha, todos.
  • Presença e tipo de atributo: obrigatório vs opcional, valores padrão, valores fixos.
  • Tipos de dados: xs:string, xs:integer, xs:decimal, xs:dateTime, xs:boolean, xs:anyURI, personalizado.
  • Restrições: comprimento mínimo/máximo, enumerações, padrões regex, valores mínimos/máximos.
  • Integridade referencial: xs:key, xs:keyref, xs:unique para restrições entre elementos.

Erros típicos

Erro Restrição XSD
Elemento obrigatório <email> ausente minOccurs="1"
Muitos elementos <phone> maxOccurs="2" excedido
Valor “abc” não é um inteiro válido type="xs:integer"
Valor “[email protected]” não corresponde ao padrão xs:pattern em xs:string
Elementos fora de ordem xs:sequence
Elemento desconhecido <foo> Não declarado no esquema
Chave duplicada Violação xs:unique

Escolhendo entre XSD e alternativas

  • XSD: padrão W3C, verboso, poderoso, amplamente suportado. Primeira escolha para XML empresarial.
  • RELAX NG: sintaxe mais simples, igualmente expressiva. Popular em formatos de documentação (DocBook, TEI).
  • Schematron: baseado em regras, executa afirmações XPath contra o documento. Bom para regras de negócios além da estrutura.
  • DTD: mais antigo, muito menos expressivo. Ainda em uso para compatibilidade histórica com HTML.

Muitos projetos usam XSD para estrutura e Schematron para regras complexas entre campos.

Armadilhas comuns

  • Os namespaces devem corresponder. Se o XSD declara targetNamespace="http://example.com" mas o XML não usa esse namespace, a validação falha com “nenhuma declaração encontrada”.
  • xs:anyType não é uma mágica de escape. Ele corresponde a qualquer coisa, mas não fornece validação alguma.
  • Valores padrão se aplicam apenas quando o atributo está ausente. Um valor vazio explícito (attr="") não recebe o padrão.
  • Tratamento de espaços em branco varia por tipo. xs:string preserva, xs:token colapsa, xs:normalizedString substitui tabs/novas linhas por espaços.

Fluxo de trabalho de depuração

  1. Valide sem esquema primeiro (verificação de bem formado). Corrija quaisquer erros de análise.
  2. Depois valide contra o esquema.
  3. Concentre-se no primeiro erro. Validadores XSD às vezes cascata erros; o primeiro geralmente é o mais acionável.
  4. Use XPath para localizar o elemento problemático em documentos grandes.

Perguntas frequentes

Não. Cole-os separadamente ou faça referência ao esquema via xsi:schemaLocation no XML. A maioria das ferramentas suporta ambas as abordagens.

Sim. Quando elementos de diferentes namespaces aparecem, cada um precisa de seu próprio esquema. Cole todos eles; o validador carrega todos.

XSD 1.0. O motor libxml subjacente não implementa o XSD 1.1, portanto recursos exclusivos da versão 1.1 como asserções, tipos condicionais e conteúdo aberto não são aplicados.

Não. Seu XML e esquema são enviados ao servidor apenas para executar a validação daquela única solicitação; não são armazenados nem registrados depois.

Ferramentas relacionadas

Ferramenta disponível em outros idiomas