Rejeição 517: Falha no schema XML – inexiste atributo versao na tag raiz da mensagem

Descrição oficial da SEFAZ: Falha no schema XML – inexiste atributo versao na tag raiz da mensagem

O que significa

A tag raiz da mensagem chegou sem o atributo versao. A SEFAZ usa esse atributo para saber contra qual layout validar o documento, então sem ele nem começa a validação.

Por que acontece

A regra é objetiva: o atributo tem que existir na tag raiz e trazer a versão do leiaute. A causa concreta depende de como sua mensagem foi montada — pode ser o atributo omitido pelo gerador, perdido numa serialização que ignorou atributos, ou uma raiz montada à mão sem ele. Não é possível dizer qual foi só pelo código de rejeição.

Como resolver

Pegue o XML como transmitido e olhe a tag raiz: o atributo versao precisa estar lá, com a versão do leiaute aceita pelo serviço. Confira também se o namespace da raiz está correto, porque os dois costumam se perder juntos. Ajuste o gerador, reassine se for o caso e retransmita.

Como evitar

Valide contra o XSD antes de enviar — a ausência do atributo é apontada na validação local.