Pular para o conteúdo principal

Geração de XML

Após validar seus dados usando os DTOs, o próximo passo é gerar o XML compatível com o padrão nacional da NFS-e. A biblioteca fornece builders específicos para essa finalidade.

Por que usar os Builders?

A estrutura do XML da NFS-e Nacional é complexa e rigorosa. Os builders (DpsXmlBuilder e NfseXmlBuilder) abstraem essa complexidade, garantindo que:

  • A hierarquia de elementos esteja correta.
  • Os namespaces sejam aplicados adequadamente (http://www.sped.fazenda.gov.br/nfse).
  • Valores numéricos e datas sejam formatados conforme a especificação.

Gerando XML de uma DPS

Para gerar o XML de uma Declaração de Prestação de Serviço (DPS), utilize o DpsXmlBuilder.

use Nfse\Dto\Nfse\DpsData;
use Nfse\Xml\DpsXmlBuilder;

// 1. Instancie seu DTO (geralmente vindo de um formulário ou banco de dados)
$dpsData = new DpsData($dados);

// 2. Utilize o builder para gerar o XML
$builder = new DpsXmlBuilder();
$xml = $builder->build($dpsData);

echo $xml;

Gerando XML de uma NFS-e

Para documentos de NFS-e já processados ou para visualização, utilize o NfseXmlBuilder.

use Nfse\Dto\Nfse\NfseData;
use Nfse\Xml\NfseXmlBuilder;

$nfseData = new NfseData($dadosNfse);

$builder = new NfseXmlBuilder();
$xml = $builder->build($nfseData);

echo $xml;

Detalhes de Implementação

Os builders utilizam a extensão DOMDocument nativa do PHP para garantir a geração de um XML válido e bem formado.

[!TIP] O XML gerado pelos builders é o que deve ser assinado digitalmente antes do envio para os webservices da Receita Federal.