Glossário

XML Schema pattern

Atualizado em · 4 min de leitura

Definição

XML Schema pattern é uma regra de validação usada em arquivos XSD que define, por meio de uma expressão regular, o formato exato que o texto de um campo XML deve seguir. Em documentos fiscais eletrônicos, como NF-e e CT-e, garante, por exemplo, que um CNPJ tenha 14 dígitos ou que uma chave de acesso tenha 44 números.

Também conhecido como: XML Schema pattern facet, xs:pattern, Faceta pattern, Restrição pattern do XSD, Padrão do XML Schema

O que é um pattern no XML Schema?

Um XML Schema (arquivo XSD) é um documento que descreve como um XML deve ser montado: quais campos existem, em que ordem aparecem e que tipo de valor cada um aceita. Dentro dele, o pattern é uma das chamadas facetas de restrição, escrita como xs:pattern, que limita os valores de um campo a um formato específico.

Esse formato é descrito por uma expressão regular, uma espécie de molde de texto. Se o conteúdo do campo não se encaixar no molde, o XML é considerado inválido, mesmo que todo o resto esteja correto.

Para que serve o pattern nos documentos fiscais?

Os leiautes oficiais de NF-e, NFC-e, CT-e, MDF-e e da NFS-e padrão nacional são publicados como conjuntos de arquivos XSD. Os patterns desses arquivos garantem que dados como CNPJ, CPF, CEP, datas, valores monetários e chaves de acesso cheguem ao fisco em um formato único e previsível.

Isso permite que a autorizadora rejeite imediatamente documentos malformados, antes mesmo de analisar regras de negócio, como cálculo de impostos ou situação cadastral do emitente.

Como funciona a validação por pattern?

Quando o XML é enviado, o validador compara o texto de cada campo com a expressão regular definida no schema. Um pattern como [0-9]{14}, por exemplo, só aceita exatamente 14 dígitos. Um CNPJ enviado com pontos, barra e hífen não se encaixa e gera erro.

Um detalhe importante: no XML Schema, o pattern sempre precisa casar com o valor inteiro do campo, do primeiro ao último caractere. Por isso não se usam os marcadores de início e fim comuns em outras linguagens. Quando um mesmo tipo tem mais de um pattern, basta o valor atender a um deles.

Por que erros de pattern são tão comuns na emissão fiscal?

Muitos erros vêm de detalhes invisíveis: espaços no início ou no fim do texto, quebras de linha, caracteres especiais, máscaras de formatação ou casas decimais a mais. Nos schemas da NF-e, por exemplo, campos de texto costumam ter um pattern que proíbe espaços nas extremidades.

Como a falha acontece na etapa de schema, o documento costuma ser rejeitado sem chegar à análise das regras fiscais. Por isso, sistemas que emitem notas normalmente limpam e formatam os dados antes de montar o XML, ou usam uma API fiscal que faz essa preparação.

Qual a diferença entre pattern e outras restrições do XML Schema?

O pattern controla o formato do texto. Outras facetas controlam aspectos diferentes: enumeration define uma lista fechada de valores permitidos (como os códigos de CST), length, minLength e maxLength controlam o tamanho, e totalDigits e fractionDigits limitam a quantidade de dígitos em números. Um mesmo campo pode combinar várias dessas regras.

Também há diferença em relação ao pattern do JSON Schema: lá, a expressão não precisa casar com o valor inteiro, a menos que se usem marcadores de início e fim, e a sintaxe de expressão regular segue outro padrão.

Exemplos de XML Schema pattern

  • No schema da NF-e, o campo de CNPJ usa um pattern equivalente a [0-9]{14}, então o valor 12.345.678/0001-90 é rejeitado e 12345678000190 é aceito.
  • A chave de acesso de uma NF-e ou de um CT-e segue um pattern de 44 dígitos numéricos; uma chave com 43 dígitos ou com espaços falha na validação.
  • Um ERP envia a razão social do destinatário com um espaço no final, e o documento é rejeitado por falha de schema porque o pattern do campo de texto não permite espaços nas extremidades.
  • Um time de desenvolvimento valida o XML localmente contra os arquivos XSD oficiais no ambiente de homologação para encontrar erros de pattern antes de emitir em produção.

Perguntas frequentes

Pattern e expressão regular são a mesma coisa?

Quase. O pattern é a regra do XML Schema que usa uma expressão regular para validar um campo. A sintaxe é parecida com a de outras linguagens, mas tem particularidades, como casar sempre com o valor inteiro.

Onde encontro os patterns usados na NF-e?

Nos arquivos XSD que fazem parte do pacote de schemas oficial de cada documento fiscal, publicado junto com o leiaute técnico. Os patterns ficam definidos principalmente nos tipos básicos reutilizados pelos demais campos.

Como evitar rejeições por pattern?

Remova máscaras e espaços extras, padronize datas e casas decimais, evite caracteres não permitidos e valide o XML contra o XSD antes do envio. Testar no ambiente de homologação ajuda a detectar falhas cedo.

Atualizado em · Como produzimos este glossário