# XML Schema pattern

> 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:** xs:pattern, Faceta pattern, Restrição pattern do XSD, Padrão do XML Schema, XML Schema pattern facet

**Glossário:** [Glossário de A a Z](https://conota.dev/glossario/) · **Letra:** X

## 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.

## Termos relacionados

- [Esquema XML](https://conota.dev/glossario/esquema-xml.md)
- [Arquivo XML fiscal](https://conota.dev/glossario/arquivo-xml-fiscal.md)
- [Erro de validação fiscal](https://conota.dev/glossario/erro-de-validacao-fiscal.md)
- [JSON Schema](https://conota.dev/glossario/json-schema.md)
- [Chave de acesso da NF-e](https://conota.dev/glossario/chave-de-acesso-da-nf-e.md)
- [Ambiente de homologação](https://conota.dev/glossario/ambiente-de-homologacao.md)

---

Fonte: [XML Schema pattern](https://conota.dev/glossario/xml-schema-pattern/) · Atualizado em 2026-10-22
