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
